我是安卓新手,现在正在寻找Firebase。在我的应用程序中,可以登录多个手机号码。所以我要做的是删除当前令牌
FirebaseInstanceId.getInstance().deleteInstanceId();
之后,当我使用新号码登录时,会生成新令牌。
所以我的问题究竟是哪个事件触发了令牌再生事件。上面的代码行还有一件事,我应该在线程(主线程除外(上运行才能工作
用来获取火碱令牌的服务
public class FCMInstanceIDListenerService extends FirebaseInstanceIdService {
AppSharedPreferences appSharedPreferences;
@Override
public void onCreate() {
super.onCreate();
String CurrentToken = FirebaseInstanceId.getInstance().getToken();
if (CurrentToken!=null){
Intent intent = new Intent("device_id");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
Log.d("token", "Refreshed token: " + CurrentToken);
appSharedPreferences.putString("device_id",CurrentToken);
}
else {
onTokenRefresh();
}
}
public FCMInstanceIDListenerService() {
appSharedPreferences=AppSharedPreferences.getsharedprefInstance(this);
// prefManager = PrefManager.getInstance(this);
}
@Override
public void onTokenRefresh() {
super.onTokenRefresh();
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Intent intent = new Intent("device_id");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
Log.d("token", "Refreshed token: " + refreshedToken);
appSharedPreferences.putString("device_id",refreshedToken);
// prefManager.putString(PrefrenceConstants.KEY_DEVICE_ID, refreshedToken);
}
}
从开发者网站:
onTokenRefresh(( 当系统确定令牌时调用 需要刷新。应用程序应该调用 getToken(( 并发送 所有应用程序服务器的令牌。
这不会经常调用,它是密钥轮换所必需的 并处理由于以下原因导致的实例 ID 更改:
应用删除实例 ID
应用已在新设备上恢复
用户卸载/重新安装应用
用户清除应用数据
系统将限制所有设备上的刷新事件以避免 使用令牌更新使应用程序服务器过载。