簡體   English   中英

Firebase Android 嘗試獲取令牌時 FCM INVALID_SENDER

[英]Firebase Android FCM INVALID_SENDER when trying to get token

我創建了一個 google-services.json 文件並添加到我的 android 項目中,但是當我嘗試獲取令牌時收到此異常:

{
Java.IO.IOException: java.util.concurrent.ExecutionException: java.io.IOException: INVALID_SENDER ---> Java.Util.Concurrent.ExecutionException: java.io.IOException: INVALID_SENDER ---> Java.IO.IOException: INVALID_SENDER
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
  at VTInRoomApp.Droid.XamarinForms.MainActivityXam.OnComplete (Android.Gms.Tasks.Task task) [0x00039] in T:\Work\VT\Dev\Mobile\Xamarin\VTInRoomApp\VTInRoomApp\VTInRoomApp.Android\XamarinForms\MainActivityXam.cs:157 
  --- End of managed Java.IO.IOException stack trace ---
java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: INVALID_SENDER
    at com.google.firebase.messaging.FirebaseMessaging.blockingGetToken(com.google.firebase:firebase-messaging@@22.0.0:14)
    at com.google.firebase.messaging.FirebaseMessaging.lambda$getToken$2$FirebaseMessaging(com.google.firebase:firebase-messaging@@22.0.0:1)
    at com.google.firebase.messaging.FirebaseMessaging$$Lambda$3.run(com.google.firebase:firebase-messaging@@22.0.0)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@17.6.0:2)
    at java.lang.Thread.run(Thread.java:761)
Caused by: java.util.concurrent.ExecutionException: java.io.IOException: INVALID_SENDER
    at com.google.android.gms.tasks.Tasks.zza(com.google.android.gms:play-services-tasks@@17.2.1:5)
    at com.google.android.gms.tasks.Tasks.await(com.google.android.gms:play-services-tasks@@17.2.1:8)
    at com.google.firebase.messaging.FirebaseMessaging.blockingGetToken(com.google.firebase:firebase-messaging@@22.0.0:10)
    ... 9 more
Caused by: java.io.IOException: INVALID_SENDER
    at com.google.firebase.messaging.GmsRpc.handleResponse(com.google.firebase:firebase-messaging@@22.0.0:7)
    at com.google.firebase.messaging.GmsRpc.lambda$extractResponseWhenComplete$0$GmsRpc(com.google.firebase:firebase-messaging@@22.0.0:1)
    at com.google.firebase.messaging.GmsRpc$$Lambda$1.then(com.google.firebase:firebase-messaging@@22.0.0)
    at com.google.android.gms.tasks.zzc.run(com.google.android.gms:play-services-tasks@@17.2.1:3)
    at com.google.firebase.messaging.GmsRpc$$Lambda$0.execute(com.google.firebase:firebase-messaging@@22.0.0)
    at com.google.android.gms.tasks.zzd.zza(com.google.android.gms:play-services-tasks@@17.2.1:1)
    at com.google.android.gms.tasks.zzr.zzb(com.google.android.gms:play-services-tasks@@17.2.1:5)
    at com.google.android.gms.tasks.zzw.zza(com.google.android.gms:play-services-tasks@@17.2.1:3)
    at com.google.android.gms.tasks.zzc.run(com.google.android.gms:play-services-tasks@@17.2.1:8)
    at com.google.android.gms.cloudmessaging.zzz.execute(com.google.android.gms:play-services-cloud-messaging@@17.0.0)
    at com.google.android.gms.tasks.zzd.zza(com.google.android.gms:play-services-tasks@@17.2.1:1)
    at com.google.android.gms.tasks.zzr.zzb(com.google.android.gms:play-services-tasks@@17.2.1:5)
    at com.google.android.gms.tasks.zzw.zza(com.google.android.gms:play-services-tasks@@17.2.1:3)
    at com.google.android.gms.tasks.TaskCompletionSource.setResult(com.google.android.gms:play-services-tasks@@17.2.1:1)
    at com.google.android.gms.cloudmessaging.zzp.zzd(com.google.android.gms:play-services-cloud-messaging@@17.0.0:3)
    at com.google.android.gms.cloudmessaging.zzr.zza(com.google.android.gms:play-services-cloud-messaging@@17.0.0:2)
    at com.google.android.gms.cloudmessaging.zzf.handleMessage(com.google.android.gms:play-services-cloud-messaging@@17.0.0:14)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6157)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
}

我在創建 google-servies.json 時搞砸了嗎,還是我的代碼中有什么東西?

非常感謝你

通常,此錯誤是由 json 文件引起的。 檢查以下信息以確認。

  1. 檢查您是否已將文件復制到正確的項目文件夾中,並將構建操作設置為GoogleServicesJson
  2. 檢查文件是否正確並與 FCM 中最新下載的 google-services.json 文件匹配。
  3. 檢查您的項目中是否存在 google-services.json 的重復文件。
  4. 請注意,當將google-services.json添加到項目(並設置了GoogleServicesJson構建操作)時,構建過程會提取client IDAPI密鑰,然后將這些憑據添加到駐留在obj/Debug/android/AndroidManifest.xml的合並/生成的AndroidManifest.xml obj/Debug/android/AndroidManifest.xml 如果您可以確認一切正確,刪除 bin 和 obj 以清理並重建並重新打開項目可能會有所幫助。
  5. 如果您仍然遇到此問題,請創建一個新項目以按照 MS 文檔中的步驟進行操作。 https://learn.microsoft.com/en-us/xamarin.android/data-cloud/google-messaging/remote-notifications-with-fcm?tabs=windows

嘗試這個

FirebaseMessaging.getInstance().getToken()
.addOnCompleteListener(new OnCompleteListener<String>() {
    @Override
    public void onComplete(@NonNull Task<String> task) {
      if (!task.isSuccessful()) {
        Log.w(TAG, "Fetching FCM registration token failed", task.getException());
        return;
      }

      // Get new FCM registration token
      String token = task.getResult();

      // Log and toast
      String msg = getString(R.string.msg_token_fmt, token);
      Log.d(TAG, msg);
      Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
    }
});

暫無
暫無

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

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