FCM在我的活动中每次都生成相同的令牌 [英] FCM is generating the same token everytime in my activity
问题描述
在我的活动中,实际上我有一个按钮,然后单击按钮,我想生成FCM
...我想在重新启动应用程序并再次单击按钮时FCM
每次都应生成不同的令牌,但它生成的令牌相同每次都有令牌
In my activity actually I have a button and on button click i want to generate FCM
... I want when app is restart and when button is clicked again FCM
should generate different token everytime but it is generating same token everytime
FirebaseInstanceId
.getInstance()
.getInstanceId()
.addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String token = instanceIdResult.getToken();// here same token is generating everytime
System.out.println("Tokensss " + token);
SharedPreferences sharedPreferences = SignupActivity.this.getSharedPreferences(cmn.SHARED_SPNAME, MODE_PRIVATE);
SharedPreferences.Editor sharedPreferencesE = sharedPreferences.edit();
sharedPreferencesE.putString(cmn.RegistrationTokenforFirebase, token);
sharedPreferencesE.apply();
tokenZ = new Token();
SharedPreferences sharedPreferenceZ = SignupActivity.this.getSharedPreferences(cmn.SHARED_SPNAME, MODE_PRIVATE);
String tokens = sharedPreferenceZ.getString(cmn.RegistrationTokenforFirebase, "1");
DatabaseReference database = FirebaseDatabase.getInstance().getReference().child("" + Number);
// DatabaseReference myRef = database.getReference(""+Number);
tokenZ.setToken(tokens);
database.setValue(tokenZ);
}
});
推荐答案
什么也没有说,每次调用getToken()
方法都会生成令牌.
Nothing says that getToken()
method will generate token every time you call it.
来自文档:
在您的应用程序首次启动时,FCM SDK会为客户端应用程序实例生成注册令牌.
On initial startup of your app, the FCM SDK generates a registration token for the client app instance.
但文档明确表示令牌"可能可能发生更改"的多种不同情况:
but also docs clearly say that there are multiple different scenarios in which the token "may change":
- 该应用程序删除实例ID
- 该应用已在新设备上还原
- 用户卸载/重新安装应用程序
- 用户清除应用数据.
- The app deletes Instance ID
- The app is restored on a new device
- The user uninstalls/reinstall the app
- The user clears app data.
getToken()
每次都会为您提供当前令牌,而不是不是新令牌.
getToken()
gives you the current token, not new token every single time.
这篇关于FCM在我的活动中每次都生成相同的令牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!