web-dev-qa-db-ja.com

FCM通知でトピックを作成する方法

Firebase-Notification APIを試していますが、コンソールからアプリにダウンストリームメッセージを送信するとサービスが完璧に動作しますが、トピック登録ユーザーにメッセージを送信するにはどうすればよいですか?

Android側でやった

FirebaseMessaging.getInstance().subscribeToTopic("TopicName");

しかし、コンソールからトピックにダウンストリームメッセージを送信しようとすると

This project does not have any topics

編集:トピックをマッピングした後、Firebase Consoleに表示されるまで最大1日かかることがわかりました

66
Moh'd Awad

まず、IID_TOKENが登録トークンであり、TOPIC_NAMEが作成するトピックである場合、POSTリクエストを作成してトピックを作成する必要があります

https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME

作成したトピックを確認するには、このURLでGETリクエストを作成します

 https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=true

aPI_KEYをリクエストヘッダーに挿入します

Authorization: key=YOUR_API_KEY

トピックはFirebaseコンソールに表示されるまでに最大1日かかります。テストのためにcurlリクエストを作成したり、 Advanced RESTクライアント

52
Moh'd Awad

これは代替パスです。

クライアントアプリを既存のトピックにサブスクライブすると、firebase urlリクエストを呼び出すことなくトピックも作成されます。

また、Firebase Consoleに表示されるまでに数時間かかります。

グーグル共有の例を使用すると: https://github.com/firebase/quickstart-Android/tree/master/messaging 同じことを確認できます。

        FirebaseMessaging.getInstance().subscribeToTopic("news");
        Log.d(TAG, "Subscribed to news topic");
57
Juan Pablo

Firebaseは、コンソールで新しいトピックを作成するのに時間がかかります。私の場合、4時間後に新しいトピックが作成されました。

22
Abhishek

Http apiを使用してトピックを作成できます。

https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME

1。 IID_TOKEN=デバイス登録トークン。次のコマンドでAndroidデバイスで見つけることができます。

String IID_TOKEN = FirebaseInstanceId.getInstance().getToken();

2.TOPIC_NAME=新しいトピック名

3。承認:key = YOUR_API_KEYこのパラメーターをヘッダーに設定します。スクリーンショットを見る: 高度な休息クライアントを介して新しいトピックを作成する

YOUR_API_KEY: console.firebase.google.com

リクエストを送信すると、httpステータス「OK」を受け取ります。

その後、次のapiを使用して、現在のプロジェクトのすべてのトピックに関する情報を取得できます。

https://iid.googleapis.com/iid/info/IID_TOKEN?details=true

ここで、リクエストのヘッダーに認証キーを追加する必要があります。トピックリストが表示されます。 response info topic

GoogleのインスタンスID /サーバーに関するこの記事を読むことをお勧めします

18
mr.boyfox