getToken() が非推奨になったので、プッシュ通知を送信するための Firebase トークンを取得する正しい方法を知りたいです。
ベストアンサー1
更新された回答
FirebaseInstanceIdは非推奨ですが、現在は以下を使用できます。FirebaseMessaging.getInstance().トークン。
例えば:
FirebaseMessaging.getInstance().token.addOnSuccessListener { result ->
if(result != null){
fbToken = result
// DO your thing with your firebase token
}
}
古い答え
としてドキュメンテーション言う:
このメソッドは非推奨になりましたgetInstanceId() を優先します。
インスタンスIDを取得する()InstanceIdResult を含む Task を返します。次のようになります。
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String deviceToken = instanceIdResult.getToken();
// Do whatever you want with your token now
// i.e. store it on SharedPreferences or DB
// or directly send it to server
}
});
このアプローチは文字通り、FirebaseInstanceId.getInstanceId().getToken()、それは事実を解決しないFirebaseインスタンスIDサービスも非推奨となり、別の疑問が残ります。どこで使うのか?どのアクティビティコンテキストでも使用でき、常にトークンを返します。しかし、トークンを作成時のみ取得し、めったに更新されない場合はどうでしょうか?そのためには、新しいメソッドをオーバーライドする必要があります。新規トークン私たちの古いFirebaseメッセージングサービス実装: (はい、「InstanceId」ではなく「Messaging」です)
@Override
public void onNewToken(String s) {
super.onNewToken(s);
String deviceToken = s;
// Do whatever you want with your token now
// i.e. store it on SharedPreferences or DB
// or directly send it to server
}
この方法であれば、コードはよりスリムなままになり、最初のアプローチを使用する必要さえなくなります。