Firebase-Notification APIを試していますが、コンソールからアプリにダウンストリームメッセージを送信するとサービスが完璧に動作しますが、トピック登録ユーザーにメッセージを送信するにはどうすればよいですか?
Android側でやった
FirebaseMessaging.getInstance().subscribeToTopic("TopicName");
しかし、コンソールからトピックにダウンストリームメッセージを送信しようとすると
This project does not have any topics
編集:トピックをマッピングした後、Firebase Consoleに表示されるまで最大1日かかることがわかりました
まず、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クライアント
これは代替パスです。
クライアントアプリを既存のトピックにサブスクライブすると、firebase urlリクエストを呼び出すことなくトピックも作成されます。
また、Firebase Consoleに表示されるまでに数時間かかります。
グーグル共有の例を使用すると: https://github.com/firebase/quickstart-Android/tree/master/messaging 同じことを確認できます。
FirebaseMessaging.getInstance().subscribeToTopic("news");
Log.d(TAG, "Subscribed to news topic");
Firebaseは、コンソールで新しいトピックを作成するのに時間がかかります。私の場合、4時間後に新しいトピックが作成されました。
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