1. ホーム
  2. android

[解決済み] FirebaseのFCMトークンとは何ですか?

2022-03-13 06:10:36

質問

新しいFirebaseでは、Notificationの下に、開発者が特定のデバイスに通知を送ることができると記載されています。そのために、コンソールでFCMトークンを要求されます。また、そのトークンはどのように取得すればよいのでしょうか?

解決方法は?

具体的にはどのようなことですか?

FCMトークン、または一般的に知られているのは registrationToken のように グーグルクラウドメッセージング . に記述されているように GCM FCMドキュメント :

GCM 接続サーバーがクライアントアプリに発行する、メッセージの受信を許可する ID です。なお、登録トークンは秘密にする必要があります。


そのトークンを取得するにはどうすればよいですか?

更新情報 : を呼び出すことで、まだトークンを取得することができます。 getToken() しかし、FCMの最新バージョンでは FirebaseInstanceIdService.onTokenRefresh() に置き換わっています。 FirebaseMessagingService.onNewToken() -- 私の経験では と同じように機能します。 onTokenRefresh() した。 .


古い回答です。

の通りです。 FCMのドキュメント :

アプリの初回起動時に、FCM SDK はクライアントアプリインスタンスの登録トークンを生成します。単一のデバイスをターゲットにしたり、デバイスグループを作成したりする場合は、このトークンにアクセスする必要があります。

FirebaseInstanceIdService を拡張することで、トークンの値にアクセスすることができます。マニフェストにサービスが追加されていることを確認し、onTokenRefresh のコンテキストで getToken を呼び出し、表示されているように値をログに記録してください。

@Override
public void onTokenRefresh() {
    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Log.d(TAG, "Refreshed token: " + refreshedToken);

    // TODO: Implement this method to send any registration to your app's servers.
    sendRegistrationToServer(refreshedToken);
}

onTokenRefreshcallback は新しいトークンが生成されるたびに起動するので、そのコンテキストで getToken を呼び出すと、現在利用可能な登録トークンにアクセスしていることが確認できます。FirebaseInstanceID.getToken() は、トークンがまだ生成されていない場合は null を返します。

トークンを取得したら、それをアプリサーバーに送信し、お好みの方法で保存することができます。API の詳細については、「Instance ID API リファレンス」を参照してください。