如果未调用 onNewToken,如何获取 firebase 令牌,因为令牌已经创建?



正如我们所知,我们可以在继承FirebaseMessagingService的类中onNewToken(...)获得firebase token。但是我有一个问题,该方法不会调用更新应用程序案例,如果我之前已经有令牌,但我没有保存它。如何获得它??

示例:在我的类中继承自FirebaseMessagingService

class CustomFirebaseService : FirebaseMessagingService() {
override fun onNewToken(newToken: String) {
supper.onNewToken(newToken)
// I have token in here, but I already didn't save it on any where (sharedperf, db,..)
}

现在在我的应用程序中,我需要使用它,但我不确定获得它的最佳方法是什么?

class App: Application() {
override fun onCreate() {
super.onCreate()
// I need to use token here, but method onNewToken will not called, because the current token is valid.
}
}

也许,我可以使用FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(..)吗?它是否与我的自定义服务重复??

正如Firebase关于获取当前注册令牌的文档所说:

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();
}
});

您通常只需要在开发中执行此操作,因为初始令牌通常是在您拥有onNewToken之前生成的。应用投入生产后,将从生成第一个令牌的那一刻起调用onNewToken代码。

相关内容

  • 没有找到相关文章

最新更新