如何手动触发 Firebase onNewToken 调用?



当我的Android应用程序第一次使用FirebaseInstanceId.getInstance().getInstanceId()时,注册的onNewToken方法会被调用。但是,如何在我的活动已在运行并登录时手动触发此事件,以便模拟可能强制客户端刷新其令牌的其他安全事件?

理想情况下,这应该是应用程序之外的外部事件,例如转到某个在线 Firebase 控制台,我可以在其中清除客户端标识符或重置它们。

首先,您需要删除旧的实例 id,然后使用FirebaseInstanceId.getInstance().getInstanceId();获取 id。

例:

public static void resetInstanceId() {
new Thread(new Runnable() {
@Override
public void run() {
try {
FirebaseInstanceId.getInstance().deleteInstanceId();
FirebaseInstanceId.getInstance().getInstanceId();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}

试试这段代码。每次调用此代码时,您都会获得令牌。

FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if (!task.isSuccessful()) {
Log.w(TAG, "getInstanceId failed", task.getException());
return;
}
// Get new Instance ID token
String token = task.getResult().getToken();
// 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();
}
});

相关内容

  • 没有找到相关文章

最新更新