FirebaseInstanceId.getInstance().getToken() は非推奨になったので、どのメソッドを使用すればよいですか [重複] 質問する

FirebaseInstanceId.getInstance().getToken() は非推奨になったので、どのメソッドを使用すればよいですか [重複] 質問する

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 
}

この方法であれば、コードはよりスリムなままになり、最初のアプローチを使用する必要さえなくなります。

おすすめ記事