【发布时间】:2017-10-12 10:31:16
【问题描述】:
我正在使用 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 传递令牌。 或者也许有更好的方法在刷新时保存令牌。
【问题讨论】:
标签: android firebase firebase-realtime-database firebase-cloud-messaging