我使用FCM获取用户令牌。我首次登录应用程序时成功将用户令牌保存在firebase数据库中。 我只是想知道在刷新令牌时该怎么做。 我尝试了一些东西,但我不确定这是否是正确的方法。
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
super.onTokenRefresh();
String token = FirebaseInstanceId.getInstance().getToken();
SharedPreferences prefsToken = getSharedPreferences(Params.IDToken, MODE_PRIVATE);
SharedPreferences.Editor edit = prefsToken.edit();
edit.putString("token",token);
edit.commit();
sendRegistrationToServer(token);
}
private void sendRegistrationToServer(String token) {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference(Params.USERS).child(user.getUid()).child("token")
.setValue(token);
}
}
在sharedPreferencess中,我将令牌传递给登录活动并将其保存在firebase数据库中。但是,我担心它会启动" sendReistrationToServer"方法,因为它会崩溃,因为用户仍然需要注册。我不确定这是否是正确的方法。 我想也许可以通过localBroadCast或Intent传递令牌。 或者更新时可能有更好的方法来保存令牌。
答案 0 :(得分:1)
您可以将其保存在共享偏好设置中,登录时也可以Web
,在save a boolean as logedIn in the preferences
中您可以检查该布尔值,如果是sendRegistrationToServer
那么您可以true
1}}。
喜欢这个
save it in database