在将 FCM 服务与 Firebase 结合使用时,在哪里编写上传 FCM 令牌或订阅任何主题的逻辑?

Where to write the logic to upload FCM token or to subscribe to any topic while using FCM service with Firebase?

我是 Flutter 和 Firebase 的新手。我已经用 firebase 注册了我的 android 应用程序。我的最终目标是使用云功能自动向所有用户发送通知。到目前为止,我知道我需要存储所有用户的 FCM 令牌列表或为他们订阅特定主题。我正在考虑订阅该主题,这样我就不必将令牌存储在我的 firestore 中。所以,我的问题是我应该写在哪里

FirebaseMessaging.instance.subscribeToTopic("drawNotifications");

因为,如果我把它放在 main 或 initState 中,那么每次用户运行应用程序时都会调用它,如果我这样做,这是正确的方法吗? 如果我需要更清楚地解释它,请随时告诉我,因为这是我在 Whosebug 中的第一个问题。

最好让用户选择接收通知。提示用户同意接收通知并提供随时取消的选项。

虽然 subscribeToTopic 可以在一定限制下从同一设备多次调用。

The frequency of new subscriptions is rate-limited per project. If you send too many subscription requests in a short period of time, FCM servers will respond with a 429 RESOURCE_EXHAUSTED ("quota exceeded") response. Retry with exponential backoff.

https://firebase.google.com/docs/cloud-messaging/flutter/topic-messaging