Firebase App Check调试令牌失效及权限拒绝问题求助
Firebase App Check调试环境权限拒绝及配置变更时长问题
一、调试环境权限拒绝问题分析与解决
1. 调试令牌频繁变化的原因
默认情况下,DebugAppCheckProviderFactory生成的调试令牌不会自动持久化,每次应用重启都会生成新令牌。这导致你在Firebase控制台添加的旧令牌与当前应用使用的新令牌不匹配,App Check验证失败,最终触发Firestore的权限拒绝错误。
2. 解决方法
- 持久化调试令牌:初始化App Check时指定持久化存储(如SharedPreferences),确保应用重启后使用同一令牌。示例代码(Kotlin):
import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory import com.google.firebase.appcheck.internal.SharedPreferencesAppCheckTokenStorage import com.google.firebase.appcheck.FirebaseAppCheck val debugStorage = SharedPreferencesAppCheckTokenStorage(context) FirebaseAppCheck.getInstance().installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), debugStorage )
- 更新控制台令牌:运行应用后从日志中获取新的持久化令牌(后续重启不会再变化),将其添加到Firebase控制台的App Check调试令牌列表。
- 检查Firestore安全规则:确保规则中已验证App Check,示例规则:
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.app != null; } } }
二、Firebase状态变更的平均等待时长
Firebase控制台的配置变更(包括调试令牌添加、安全规则修改、App Check策略调整等)平均生效时长为几秒到5分钟,极少数情况可能延迟至15分钟。其中调试令牌添加基本即时生效,安全规则修改通常1-2分钟内同步完成。
内容的提问来源于stack exchange,提问作者Adam Varhegyi
相关产品推荐
相关产品推荐

