Android FCM每次在我的活动中都生成相同的令牌
实际上,在我的活动中,我有一个按钮,点击按钮我想生成Android FCM每次在我的活动中都生成相同的令牌,android,firebase-cloud-messaging,Android,Firebase Cloud Messaging,实际上,在我的活动中,我有一个按钮,点击按钮我想生成FCM。。。我想当应用重新启动并且再次单击按钮时,FCM应该每次生成不同的令牌,但每次都生成相同的令牌 FirebaseInstanceId .getInstance() .getInstanceId() .addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() { @Override
FCM
。。。我想当应用重新启动并且再次单击按钮时,FCM
应该每次生成不同的令牌,但每次都生成相同的令牌
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);
}
});
FirebaseInstanceId
.getInstance()
.getInstanceId()
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(InstancedResult InstancedResult){
String token=instanceIdResult.getToken();//这里每次都生成相同的令牌
System.out.println(“令牌SSS”+令牌);
SharedReferences SharedReferences=SignupActivity.this.getSharedReferences(cmn.SHARED\u SPNAME,MODE\u PRIVATE);
SharedReferences.Editor SharedReferences=SharedReferences.edit();
sharedPreferencesE.putString(cmn.RegistrationTokenforFirebase,token);
sharedpreferences.apply();
tokenZ=新令牌();
SharedReferences SharedReferencez=SignupActivity.this.getSharedReferences(cmn.SHARED\u SPNAME,MODE\u PRIVATE);
String tokens=sharedPreferenceZ.getString(cmn.RegistrationTokenforFirebase,“1”);
DatabaseReference database=FirebaseDatabase.getInstance().getReference().child(“+Number”);
//DatabaseReference myRef=database.getReference(“+Number”);
tokenZ.setToken(令牌);
database.setValue(tokenZ);
}
});
没有任何东西表明getToken()
方法将在每次调用它时生成令牌
发件人: 在应用程序初始启动时,FCM SDK会为客户端应用程序实例生成注册令牌 但也要明确指出,在多种不同的情况下,标记“可能会改变”:
- 应用程序删除实例ID
- 应用程序已在新设备上还原
- 用户卸载/重新安装应用程序
- 用户清除应用程序数据
getToken()
为您提供当前的令牌,而不是每次都提供新令牌。Firebase令牌是在每次安装的基础上生成的,这意味着获得新令牌的唯一方法是卸载并重新安装您的应用程序。没有任何可能的方法来更新令牌?请参阅此答案