簡體   English   中英

Firebase.initializeApp(); 和 FirebaseMessaging.instance.getToken() 拋出 android 本機異常

[英]Firebase.initializeApp(); and FirebaseMessaging.instance.getToken() throws android native exceptions

我正在使用 FlutterFire Cli 配置我的 firebase 項目,它正在運行,我沒有更改任何一行代碼,我在 google play 上有一個在線版本的應用程序

然后部署的版本停止工作並在調試后開始顯示應用程序正在嘗試初始化 firebase 項目或 getToken Failed to get FIS auth token

E/FirebaseMessaging(31532):     at com.google.android.gms.tasks.Tasks.zza(com.google.android.gms:play-services-tasks@@18.0.1:5)
E/FirebaseMessaging(31532):     at com.google.android.gms.tasks.Tasks.await(com.google.android.gms:play-services-tasks@@18.0.1:8)
E/FirebaseMessaging(31532):     at com.google.firebase.messaging.GmsRpc.setDefaultAttributesToBundle(GmsRpc.java:260)
E/FirebaseMessaging(31532):     at com.google.firebase.messaging.GmsRpc.startRpc(GmsRpc.java:222)
E/FirebaseMessaging(31532):     at com.google.firebase.messaging.GmsRpc.getToken(GmsRpc.java:180)
E/FirebaseMessaging(31532):     at com.google.firebase.messaging.FirebaseMessaging.lambda$blockingGetToken$10$FirebaseMessaging(FirebaseMessaging.java:610)
E/FirebaseMessaging(31532):     at com.google.firebase.messaging.-$$Lambda$FirebaseMessaging$1AYfBMlbEOJoTvXNS_TEZqpK2SY.start(Unknown Source:6)
E/FirebaseMessaging(31532):     at com.google.firebase.messaging.RequestDeduplicator.getOrStartGetTokenRequest(RequestDeduplicator.java:67)
E/FirebaseMessaging(31532):     at com.google.firebase.messaging.FirebaseMessaging.blockingGetToken(FirebaseMessaging.java:606)
E/FirebaseMessaging(31532):     at com.google.firebase.messaging.FirebaseMessaging.lambda$getToken$4$FirebaseMessaging(FirebaseMessaging.java:392)
E/FirebaseMessaging(31532):     at com.google.firebase.messaging.-$$Lambda$FirebaseMessaging$m5Uvt0n8P9zrx-ecASLTQKzoABQ.run(Unknown Source:4)
E/FirebaseMessaging(31532):     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
E/FirebaseMessaging(31532):     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/FirebaseMessaging(31532):     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
E/FirebaseMessaging(31532):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/FirebaseMessaging(31532):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/FirebaseMessaging(31532):     at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@18.0.0:2)
E/FirebaseMessaging(31532):     at java.lang.Thread.run(Thread.java:919)
E/FirebaseMessaging(31532): Caused by: com.google.firebase.installations.FirebaseInstallationsException: Firebase Installations Service is unavailable. Please try again later.
E/FirebaseMessaging(31532):     at com.google.firebase.installations.remote.FirebaseInstallationServiceClient.createFirebaseInstallation(FirebaseInstallationServiceClient.java:153)
E/FirebaseMessaging(31532):     at com.google.firebase.installations.FirebaseInstallations.registerFidWithServer(FirebaseInstallations.java:530)
E/FirebaseMessaging(31532):     at com.google.firebase.installations.FirebaseInstallations.doNetworkCallIfNecessary(FirebaseInstallations.java:385)
E/FirebaseMessaging(31532):     at com.google.firebase.installations.FirebaseInstallations.lambda$doRegistrationOrRefresh$2$FirebaseInstallations(FirebaseInstallations.java:374)
E/FirebaseMessaging(31532):     at com.google.firebase.installations.-$$Lambda$FirebaseInstallations$VZq1h0TBcWNH8Y5yY86ujrFFyLo.run(Unknown Source:4)
E/FirebaseMessaging(31532):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/FirebaseMessaging(31532):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/FirebaseMessaging(31532):     ... 1 more
Lost connection to device 

我在用着

firebase_core:^1.20.0 firebase_messaging:^12.0.1

執行 Flutter 清理並刪除構建文件夾后,它顯示

error when communicating with firebase installation , server api , Http response [ 403 forbidden: 

雖然我沒有使用任何 vpn

我嘗試了許多解決方案,例如通過 flutterfire 創建新的 firebase 項目,但仍然顯示相同的錯誤

任何解決方案? 謝謝

當 firebase 的依賴項之一過期時,會發生這種情況。 您應該將所有 firebase 包更新到 pubspec.yaml 中的最新版本。 (如果您不需要使用特定版本進行部署)。 您可以在 pub.dev 上查看最新版本

我發現了我住在敘利亞的問題,所以第一次沒有 vpn 就禁止獲取令牌 .. 至少對於 android 設備..

2020 年 2 月 27 日起,Firebase SDK 依賴於名為 FIS(Firebase 安裝服務)的新內部基礎架構服務,現在需要連接到此 ZDB974238714CA8DE634A7CE1D08 設備並獲取令牌。 因此,Firebase 將請求這樣的事情( https://firebaseinstallations.googleapis.com/v1/projects/$project_identifier/installations/?key=$api_key )這樣做。 經過調查,您可以看到此過程由 google-play-services 完成並從 Firebase-Plugin 調用,如下所示:

https://github.com/firebase/firebase-android-sdk/blob/c6cc8c5d4a00518033a6f281486c9610b821e1c4/firebase-messaging/src/main/java/com/google/firebase/messaging/GmsRpc.java#L26

因此,我認為如果您可以編輯插件以將請求發送到代理服務器,然后發送到 FIS API,您可以圍繞此問題進行 go。

不幸的是,我可以確認 FIS API 現在在敘利亞出現 403 錯誤。

希望谷歌盡快解決這個問題...

暫無
暫無

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

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