小编Var*_*waj的帖子

无法在工作线程上同步获取 firebase id 令牌

我有一个扩展 FirebaseMessagingService 的类,其中在 onMessageRecieve() 方法中我使用工作管理器安排工作。在工作类中,我想将 Firebase Id 令牌发布到我的服务器(我正在使用同步齐射请求),但对于 Firebase IdToken,我在工作类中使用 Tasks.await() 但 logcat 显示以下错误:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.calendarapp, PID: 29746
java.lang.IllegalStateException: Must not be called on the main application thread
    at com.google.android.gms.common.internal.Preconditions.checkNotMainThread(com.google.android.gms:play-services-basement@@17.1.1:51)
    at com.google.android.gms.common.internal.Preconditions.checkNotMainThread(com.google.android.gms:play-services-basement@@17.1.1:48)
    at com.google.android.gms.tasks.Tasks.await(Unknown Source:16)
    at com.example.calendarapp.MyWorker$1.onComplete(MyWorker.java:130)
    at com.google.android.gms.tasks.zzj.run(Unknown Source:4)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7397)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
Run Code Online (Sandbox Code Playgroud)

Firebase消息服务

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    private static final String TAG = "MyFirebaseMsgService";
    FirebaseAuth mAuth;
    @Override
    public void onMessageReceived(@NonNull RemoteMessage …
Run Code Online (Sandbox Code Playgroud)

multithreading android firebase firebase-cloud-messaging android-workmanager

2
推荐指数
1
解决办法
915
查看次数