Firebase 云消息传递报告错误

Posted

技术标签:

【中文标题】Firebase 云消息传递报告错误【英文标题】:Firebase Cloud Messaging Reports wrong 【发布时间】:2021-07-20 19:51:42 【问题描述】:

我正在向我的应用发送云消息,但 Firebase-CF-Reports 告诉我不会收到它们:

但我确信某些设备确实会收到它们。例如我自己的。所以报告中出现了问题。

我在here 和here 读到过这个问题,但我已经有了一个分析标签,我将它与我的云消息一起发送。

这就是我使用 java-admin-sdk 发送通知的方式:

Message message = Message.builder()
                .setTopic(topic)
                .setandroidConfig(AndroidConfig.builder()
                        .setPriority(AndroidConfig.Priority.HIGH)
                        .build())
                .setApnsConfig(ApnsConfig.builder()
                        .setAps(Aps.builder()
                                .setMutableContent(true)
                                .setContentAvailable(true)
                                .build())
                        .putHeader("apns-push-type", "background")
                        .putHeader("apns-priority", "5")
                        .putHeader("apns-topic", "my.bundle.id")
                        .build())
                .putData("\"content\"", contentString)
                .putData("\"actionButtons\"", actionButtonsString)
                .setFcmOptions(FcmOptions.withAnalyticsLabel("SendToAll"))
                .build();

另外有趣的是,如果我不过滤 Platform/Channel(尽管仍然只过滤我的带有 Apps= 的 Android 应用程序),我会得到:

但是这些数字仍然没有任何意义。我还在自己的设备上打开了一些通知。我不敢相信只收到了 18 个。

有人知道我做错了什么吗?

我在我的 Flutter 应用中使用了这个 fcm-sdk:

firebase_messaging: ^9.1.2

【问题讨论】:

【参考方案1】:

尽管我在官方文档中没有找到这一点,但我在此答案 here 的 cmets 中找到了此讨论中的信息。事实证明,订阅 FCM 中的主题不一定是永久性的。所以不要给用户订阅一次主题。而是在每次应用启动时都这样做,尽管它是

“在技术上不是必需的。这可能取决于您的用例。对于 例如,如果您想要一个所有用户都是其成员的全局主题, 你必须确保他们订阅了它。把 应用启动时的订阅方法保证了这一点。”

-@AL.

自从我改变了这一点,收到通知的人比以前多得多。只有开放计数仍然不适合我。它始终为零。

【讨论】:

以上是关于Firebase 云消息传递报告错误的主要内容,如果未能解决你的问题,请参考以下文章

firebase 云消息传递请求包含无效参数

Firebase 云消息传递:我们无法注册默认服务工作者错误

适用于 iOS 的 Xamarin Firebase 云消息传递(appDelegate)RemoteMessageDelegate 错误

使用 Flutter 测试 Firebase 云消息传递

Firebase 云消息传递 - iOS 徽章

无法连接到 Firebase 以进行云消息传递