簡體   English   中英

Firebase 應用程序檢查拒絕 Android 中 Firestore 的所有查詢

[英]Firebase App check denied all queries for Firestore in Android

遵循此處的教程,但是當 firebase 應用程序檢查被強制執行時,所有查詢都被拒絕

W/FirebaseProfileService:使用 com.google.firebase.firestore.FirebaseFirestoreException 失敗:PERMISSION_DENIED:權限缺失或不足。

我已經在主要活動中運行了應用程序檢查,它沒有產生任何錯誤。

fun appCheck(){
    FirebaseApp.initializeApp(this)
    val firebaseAppCheck = FirebaseAppCheck.getInstance()
    firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance()
    )
}

我還可以在日志中看到請求令牌。

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 角色的問題。

這是我從 Firebase 支持得到的答案。 顯然,應用程序必須在應用程序檢查與播放完整性一起工作之前發布。 我與firebase的聊天:

是的,必須在 Google Play 商店中發布應用程序,才能獲得有效的 SHA-256 指紋,然后開始驗證 PlayIntegrity 的請求。 您可以查看此參考。

在您的情況下,如果應用程序仍在開發或持續集成中,最好在模擬器中使用調試令牌。

檢查你的隨機數是否太短。

在 nonce 字段中設置的值必須格式正確:

String
URL-safe
Encoded as Base64 and non-wrapping
Minimum of 16 characters
Maximum of 500 characters

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM