不是在启动时而是在身份验证之后进行 firebase FCM 初始化是否可以?

Is it ok to have the firebase FCM initialization not at startup but after authentication?

为了首次注册FCM

_firebaseMessaging.getToken().then((String? token) {
  _setToken(token);
});

在应用程序中,我需要互联网连接才能安装 (FIS) firebase 安装服务并使用 FCM 等 firebase 服务。目前,我在根小部件的初始状态下有上述代码,但直到稍后才检查互联网连接,如果用户在全新安装后在没有互联网的情况下运行应用程序,则会引发错误。用户通过身份验证后移动 fcm 注册是否安全? firebase 文档指出: https://firebase.google.com/docs/cloud-messaging/manage-tokens

As noted in our client setup guides, your app should retrieve this token at initial startup and save it to your app server alongside a timestamp.

但是,如果两个用户使用不同的帐户共享同一台设备,如果我们在身份验证之前检索 fcm 令牌,他们可能会收到针对彼此的推送通知。所以我相信文档并不是严格指的是应用程序启动

你一定能做到。我在我的一个项目中使用了 FCM,如果用户登录,我保存令牌,但如果没有,我首先要求用户登录,然后我使用它来保存设备令牌。而且这个应该只能用,否则即使用户没有登录应用程序也会在设备上收到消息,这似乎很奇怪。

注意:如果用户从应用程序注销,请记住也删除令牌。