![](/img/trans.png)
[英]java.io.IOException: SERVICE_NOT_AVAILABLE in GCM Client
[英]java.io.IOException: AUTHENTICATION_FAILED in Android Firebase (and SERVICE_NOT_AVAILABLE)
在獲取 firebase 令牌時,我在某些設備上遇到以下錯誤:
Fatal Exception: d.b.a.b.g.f
java.io.IOException: AUTHENTICATION_FAILED
com.google.android.gms.tasks.zzu.getResult (zzu.java:15)
MainActivity$3.onComplete (MainActivity.java:387)
Caused by java.io.IOException
AUTHENTICATION_FAILED
com.google.firebase.iid.zzu.then (zzu.java:16)
com.google.android.gms.tasks.zzd.run (zzd.java:5)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
java.lang.Thread.run (Thread.java:784)
來自開發者控制台的錯誤日志:
com.google.android.gms.tasks.RuntimeExecutionException:
at com.google.android.gms.tasks.zzu.getResult (zzu.java:15)
at com.example.MainActivity$3.onComplete (MainActivity.java:387)
at com.google.android.gms.tasks.zzj.run (zzj.java:4)
at android.os.Handler.handleCallback (Handler.java:808)
at android.os.Handler.dispatchMessage (Handler.java:101)
at android.os.Looper.loop (Looper.java:166)
at android.app.ActivityThread.main (ActivityThread.java:7529)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:245)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:921)
Caused by: java.io.IOException:
at com.google.firebase.iid.zzu.then (zzu.java:16)
at com.google.android.gms.tasks.zzd.run (zzd.java:5)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
at com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
at java.lang.Thread.run (Thread.java:784)
這是負責獲取 firebase 令牌的代碼:
FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if (task.getResult() != null && task.isSuccessful()) {
String firebaseToken = task.getResult().getToken();
}
}
});
我正在使用以下 gradle 依賴項。
implementation 'com.google.firebase:firebase-analytics:17.4.3'
implementation 'com.google.firebase:firebase-crashlytics:17.0.1'
implementation 'com.google.firebase:firebase-messaging:20.2.0'
我發現了類似的問題和問題,但沒有確定的答案。 一些人認為這可能是因為 inte.net 連接斷開,但我的應用程序在進入應用程序之前需要進行身份驗證,因此 inte.net 可用。 有沒有人遇到同樣的問題? 最好的祝福。
implementation platform('com.google.firebase:firebase-bom:26.4.0')
implementation "com.google.firebase:firebase-messaging"
炸彈已經埋下 (c) 谷歌……它還在那里……
最終得到以下代碼:
try {
FirebaseMessaging.getInstance().getToken().addOnCompleteListener(task -> {
if (task.isSuccessful()) {
final String token = task.getResult();
//GOT the token!
}
});
} catch (Exception e) {
// OMG, Firebase is used to log Firebase crash :)
// I'm not sure if this will work...
FirebaseCrashlytics.getInstance().recordException(e);
gotFBCrash = true;
}
if (gotFBCrash) {
FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(task -> {
if (task.isSuccessful()) {
final String token = task.getResult().getToken();
//GOT the token!
}
});
}
實際上,第二部分是兩次棄用的代碼(這就是為什么我在這里 - 更新到實際代碼會導致應用程序崩潰)但它有效。 如果您願意並且討厭 try/catch,則只能使用第二種方式獲取 FCM 令牌
這是Firebase端的bug,越來越多的用戶受到這個問題的影響:
這是 Google 問題跟蹤器上的問題:
這里是 Firebase 問題跟蹤器上的問題:
如果您可以從您的用戶那里獲得更多信息來幫助 Google 開發人員解決此問題,它可能會有所幫助 =)
就我而言,以上都沒有解決我的問題,我從服務回調中獲取令牌並根據需要使用它
public class LatestFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onNewToken(String mToken) {
super.onNewToken(mToken);
Log.e("TOKEN",mToken);
}
問題發布已經兩年了,但某些設備/模擬器上仍然存在異常。 原因之一是 Google Play 應用程序/服務不可用/已禁用(我今天剛遇到這個異常)。
需要 Google Play 服務來創建令牌,如果沒有它,它將在設備上失敗。
在獲取 firebase 令牌時,我在某些設備上遇到以下錯誤:
Fatal Exception: d.b.a.b.g.f
java.io.IOException: AUTHENTICATION_FAILED
com.google.android.gms.tasks.zzu.getResult (zzu.java:15)
MainActivity$3.onComplete (MainActivity.java:387)
Caused by java.io.IOException
AUTHENTICATION_FAILED
com.google.firebase.iid.zzu.then (zzu.java:16)
com.google.android.gms.tasks.zzd.run (zzd.java:5)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
java.lang.Thread.run (Thread.java:784)
來自開發者控制台的錯誤日志:
com.google.android.gms.tasks.RuntimeExecutionException:
at com.google.android.gms.tasks.zzu.getResult (zzu.java:15)
at com.example.MainActivity$3.onComplete (MainActivity.java:387)
at com.google.android.gms.tasks.zzj.run (zzj.java:4)
at android.os.Handler.handleCallback (Handler.java:808)
at android.os.Handler.dispatchMessage (Handler.java:101)
at android.os.Looper.loop (Looper.java:166)
at android.app.ActivityThread.main (ActivityThread.java:7529)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:245)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:921)
Caused by: java.io.IOException:
at com.google.firebase.iid.zzu.then (zzu.java:16)
at com.google.android.gms.tasks.zzd.run (zzd.java:5)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
at com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
at java.lang.Thread.run (Thread.java:784)
這是負責獲取 firebase 令牌的代碼:
FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if (task.getResult() != null && task.isSuccessful()) {
String firebaseToken = task.getResult().getToken();
}
}
});
我正在使用以下 gradle 依賴項。
implementation 'com.google.firebase:firebase-analytics:17.4.3'
implementation 'com.google.firebase:firebase-crashlytics:17.0.1'
implementation 'com.google.firebase:firebase-messaging:20.2.0'
我發現了類似的問題和問題,但沒有確定的答案。 有人認為這可能是互聯網連接中斷的結果,但我的應用程序需要在進入應用程序之前進行身份驗證,以便互聯網可用。 有沒有人遇到同樣的問題? 此致。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.