2016-12-21 11 views
1

FCM(またはGCM)を使用したことはありませんでしたが、複数のデバイスにメッセージを公開するアプリを書くことに目を向けており、「トピック」は良いアプローチです。FCMトピックのパブリッシュ/サブスクライブ

これまでのところ、私のアプリケーションサーバーは名前付きトピックにメッセージを公開するので、受信者デバイスの登録トークンについて知る必要はないと思われます。

トピックを購読するときに登録トークンを指定する必要があると思いますので、受信者デバイスは依然としてトークンを要求してから購読する必要があります。トークンが期限切れになるとどうなりますか?アプリケーションは新しいトークンを使用して再びトピックに登録する必要がありますか?

答えて

1

おそらく、受信者デバイスの登録トークンについて知る必要はありませんか?

いいえ。しかし、登録トークンを保存することを強くお勧めしますので、今後はDiagnostics toolを使用して登録トークンを追跡することができます。

トークンが期限切れになるとどうなりますか?アプリケーションは新しいトークンを使用して再びトピックに登録する必要がありますか?

は、Androidでは、あなたは、単に話題にデバイスを購読する

FirebaseMessaging.getInstance().subscribeToTopic(<topic_name_here>); 

を呼び出す必要があります。この作業を理解する方法は、hereで説明されています。ここで、FirebaseMessagingクラスはFirebaseInstanceIdのインスタンスを呼び出し、現在アクティブな登録トークンを購読しています(おそらく)。

@DiegoGiorgini's answer hereによれば、トークンががリフレッシュされた場合、トピックのサブスクリプションは維持されます

AFAIK(まだ遭遇していない)、対応する登録トークンを再購読する必要があります。サブスクリプションを実装する場所によって異なります。

私は、アプリ自体の開始時にそれを持っていることをお勧めします。 App Serverに複数のトピックがある場合はリストを作成し、必要に応じて再サブスクリプションを行うにはInstanceID APIを使用するのがよいでしょう。

+0

多くのありがとうございます。したがって、デバイスはサブスクライブの呼び出しでトークンを明示的に渡す必要はありませんか? (私はそう思ったが、おそらくそれはFCMではなくGCMだっただろう)。 –

+1

@AndrewStephens Nope。クライアント側から 'subscribeToTopic()'を呼び出すだけで、対応するトークンが使用されます。乾杯! –

関連する問題