要在应用程序从通知启动时获取初始消息:
final remoteMessage = await FirebaseMessaging.instance.getInitialMessage();
final data = remoteMessage?.data;
// Do something with data
它有效。但是,文档还说:
一旦[RemoteMessage]被消耗,它将被删除并 进一步调用 [getInitialMessage] 将是
。null
但是,如果我再次打电话:
remoteMessage = await FirebaseMessaging.instance.getInitialMessage();
它仍然包含远程消息。我如何实际设置它已被消耗并且应该为空?我的应用程序流程:登录后检索远程消息。再次注销/登录后,第二次调用仍然返回相同的远程消息,这是不应该发生的,因为如果远程消息不为空,应用程序将执行一些操作。
我也遇到这个问题了。我也想“消费”远程消息,但不知道如何做。我们可能用错了它,或者它出了问题,或者我们误解了一些东西:)
无论如何,我只想分享我在没有合法修复/答案的情况下所做的临时解决方法: 基本上只是跟踪已处理的远程消息(通过 messageId),以便远程消息只会被处理一次。