web-dev-qa-db-ja.com

FlutterアプリでのFCMトークンの更新

次のように、最初の実行時にFCMトークンを作成するFlutterアプリがあります。

__firebaseMessaging.getToken().then((token) {
  //save my token here
});
_

ただし、このトークンは時々更新できることを理解しています。この新しい更新されたトークンを取得するには、onTokenRefreshメソッドを呼び出す必要があります。

_Stream<String> fcmStream = _firebaseMessaging.onTokenRefresh;
fcmStream.listen((token) {
  saveToken(token);
});
_

問題は、これが正しいかどうかわからないことです。行saveToken(token)は、アプリの実行時に常に実行されますが、アプリがフォアグラウンド/バックグラウンドにないときに機能しますか?

つまり、このonTokenRefreshは、ユーザーがアプリを閉じた場合でもリッスンし続けますか?

そうでない場合、アプリが長期間開始されない場合、どうすれば新しいトークンを取得できますか?

10
Notheros

ベース このfirebaseドキュメント fcmトークンは、以下のイベントで変更されます:

  • アプリはインスタンスIDを削除します
  • アプリは新しいデバイスで復元されます
  • ユーザーがアプリをアンインストール/再インストールした
  • ユーザーがアプリデータを消去する

アプリが長い間起動されておらず、上記のいずれのイベントも発生していない場合、アプリトークンは変更されません。

9