Android 如果onNewToken未调用,如何获取firebase令牌,因为该令牌已创建?
正如我们所知,我们可以在继承的Android 如果onNewToken未调用,如何获取firebase令牌,因为该令牌已创建?,android,firebase,firebase-cloud-messaging,Android,Firebase,Firebase Cloud Messaging,正如我们所知,我们可以在继承的FirebaseMessagingService类中的onNewToken(…)上获得firebase令牌。但我有一个问题,该方法将不会调用更新应用程序案例,如果我之前已经有令牌,但我没有保存它。如何得到它 示例:在我的类中,继承自FirebaseMessagingService class CustomFirebaseService:FirebaseMessagingService(){ 重写fun-onNewToken(newToken:String){ 晚餐。
FirebaseMessagingService
类中的onNewToken(…)
上获得firebase令牌。但我有一个问题,该方法将不会调用更新应用程序案例,如果我之前已经有令牌,但我没有保存它。如何得到它
示例:在我的类中,继承自FirebaseMessagingService
class CustomFirebaseService:FirebaseMessagingService(){
重写fun-onNewToken(newToken:String){
晚餐。纽顿(纽顿)
//我在这里有一个令牌,但我已经没有把它保存在任何地方(sharedperf,db,…)
}
现在在我的应用程序中,我需要使用它,但我不确定获得它的最佳方式是什么
类应用程序:应用程序(){
重写fun onCreate(){
super.onCreate()
//我需要在这里使用令牌,但不会调用onNewToken方法,因为当前令牌有效。
}
}
也许,我可以使用
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(..)
?是否与我的自定义服务重复???如上的Firebase文档所述:
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
如果(!task.issusccessful()){
w(标记“getInstanceId失败”,task.getException());
返回;
}
//获取新实例ID令牌
字符串标记=task.getResult().getToken();
//原木和烤面包
String msg=getString(R.String.msg\u token\u fmt,token);
Log.d(标签、消息);
Toast.makeText(MainActivity.this,msg,Toast.LENGTH_SHORT).show();
}
});
通常,您只需要在开发中使用它,因为初始令牌通常是在您拥有onNewToken
之前生成的。一旦您的应用程序投入生产,将从生成第一个令牌的那一刻起调用onNewToken
代码
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();
}
});