如何使用FirebaseInstanceId.getInstance().deleteInstanceId()?

Joh*_*nes 12 java android firebase firebase-cloud-messaging

我想删除我的FireBaseInstance

FirebaseInstanceId.getInstance().deleteInstanceId() 
Run Code Online (Sandbox Code Playgroud)

我使用try/catch块但是我收到此错误:

> W/System.err: java.io.IOException: MAIN_THREAD W/System.err:     at
> com.google.firebase.iid.zzd.zzb(Unknown Source) W/System.err:     at
> com.google.firebase.iid.FirebaseInstanceId.deleteInstanceId(Unknown
> Source) W/System.err:     at
> package.class.onCreate(DatenLadenActivity.java:57)
> W/System.err:     at
> android.app.Activity.performCreate(Activity.java:6272) W/System.err:  
> at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
> W/System.err:     at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387)
> W/System.err:     at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)
> W/System.err:     at
> android.app.ActivityThread.access$900(ActivityThread.java:157)
> W/System.err:     at
> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356)
> W/System.err:     at
> android.os.Handler.dispatchMessage(Handler.java:102) W/System.err:    
> at android.os.Looper.loop(Looper.java:148) W/System.err:     at
> android.app.ActivityThread.main(ActivityThread.java:5525)
> W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
> W/System.err:     at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
> W/System.err:     at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
Run Code Online (Sandbox Code Playgroud)

谢谢你的回答,抱歉我的英语不好:)

Bob*_*der 50

deleteInstanceId()是一个阻止电话.它不能在主线程上调用.如果您只需要调用它进行开发和测试,您可以使用一个简单的Thread:

            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        FirebaseInstanceId.getInstance().deleteInstanceId();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }).start();
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记也删除令牌。因为重新登录时,新用户将收到前一个用户的通知: --- FirebaseInstanceId.getInstance().deleteToken(FirebaseInstanceId.getInstance().getToken(), INSTANCE_ID_SCOPE); (3认同)