私はFCMを使用してユーザートークンを取得しています。彼が最初にアプリケーションにログインすると、ユーザートークンはfirebaseデータベースに正常に保存されます。 トークンが更新されたときに何をすべきか不思議です。 私は何かを試しましたが、それが正しい方法であるかどうかはわかりません。私は、ログインアクティビティにトークンを渡し、firebase databseに保存しsharedPreferencessでFCM - アップデートトークン
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);
}
}
。しかし、私はそれが "sendReistrationToServer"メソッドを起動するのではないかと恐れています。ユーザーがまだ登録しなければならないのでクラッシュするからです。私はそれが正しい方法であるかどうかはわかりません。 localBroadCastまたはIntentでトークンを渡した可能性があります。 か、トークンをリフレッシュするときにトークンを保存する方が良いでしょう。
いやそれIN-記録されたユーザーのトークンは、あなたがして、デバイス上のアプリにはないユーザーのプロファイルに、デバイスにインストールアプリへのアドレスで保存 –
SharedPrefs内のトークンの値がnullでない場合、これは最初のときに行います(ただし、ofcあなたが誤ってその飾りを拭かないように注意してください) –