Firebase 应用检查拒绝了 Android 中对 Firestore 的所有查询

Dav*_*vid 6 android kotlin google-cloud-firestore firebase-app-check

按照此处的教程进行操作,但是当强制执行 Firebase 应用程序检查时,所有查询都会返回为被拒绝

W/FirebaseProfileService:因 com.google.firebase.firestore.FirebaseFirestoreException 失败:PERMISSION_DENIED:权限缺失或不足。

我已经在主要活动中运行了应用程序检查,并且没有产生任何错误。

fun appCheck(){
    FirebaseApp.initializeApp(this)
    val firebaseAppCheck = FirebaseAppCheck.getInstance()
    firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance()
    )
}
Run Code Online (Sandbox Code Playgroud)

我还可以在日志中看到请求令牌。

I/PlayCore: UID: [] PID: [] IntegrityService : requestIntegrityToken(IntegrityTokenRequest{nonce=*****

I/PlayCore: UID: [] PID: [] IntegrityService :启动与服务的绑定。

I/PlayCore: UID: [] PID: [] IntegrityService : ServiceConnectionImpl.onServiceConnected(ComponentInfo{com.android.vending/com.google.android.finsky.integrityservice.IntegrityService})

I/PlayCore: UID: [] PID: [] IntegrityService : linkToDeath

W/Firestore:(24.1.2) [Firestore]:************ 失败:状态{code=PERMISSION_DENIED,描述=权限缺失或不足。,原因=null}

出于隐私原因,“***”数据已被省略

有什么方法可以检查 AppCheck 或 PlayIntegrity 错误吗?云监控似乎只是监控云功能。如前所述,当不强制执行 AppCheck 时,所有查询和 Firestore 规则都可以正常工作。

除了上传版本到 Play 商店控制台之外,似乎也没有提到在哪里指定应用程序的最新版本。我是否必须上传 AppCheck 版本才能允许 Firestore 查询?

编辑:我倾向于这是 IAM 角色的问题。

Dav*_*vid 4

这是我从 Firebase 支持处得到的答案。显然,应用程序必须先发布,然后应用程序检查才能保证游戏完整性。我与 firebase 的聊天:

是的,必须在 Google Play 商店中发布应用程序,才能拥有有效的 SHA-256 指纹,然后开始验证 PlayIntegrity 的请求。您可以检查此参考。

就您而言,如果应用程序仍在开发或持续集成中,最好在模拟器中使用调试令牌。