使用React Native + Expo + FCM创建的双推通知

问题描述 投票:1回答:1

我正在尝试创建一个可以接收推送通知的应用。推送通知使用AWS SNS并使用FCM令牌而不是Expo's Token发送。收到通知,然而,系统托盘收到两次通知。我尝试使用没有安装expo的手机,但它仍然收到2个通知。

这是我发送给SNS时的有效载荷请求

{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}

知道为什么会这样吗?我愿意提供代码,但我不知道应该放哪个部分。这是一个例子。应用程序名称相同,但第一个通知中包含expo的徽标。更新:通过firebase控制台发送后,我意识到带有expo图标的通知是正确的。

编辑:尝试从firebase控制台发送通知后,我设法只收到1个通知。问题出在SNS吗?

编辑[2]我看了一下我的Cloudwatch日志中的SNS平台应用程序。 NumberOfMessagesPublished指标表明只发布了1条消息。所以我猜它消除了两次调用SNS api的可能性。

编辑[3]我试图使用go-fcm包直接向fcm发送通知。即使不使用SNS,我也收到了2个通知。但是,为什么直接向fcm发送通知的输出与使用Firebase控制台的输出不同?

enter image description here

UPDATE

最后,我设法通过在tag字段中设置notification字段来防止重复。

所以有效载荷是这样的:

{
"GCM": "{ \"notification\": { \"text\": \"test message\", \"tag\": \"testing\" } }"
}

然而,这仍然没有回答为什么我得到重复的问题:(

android amazon-web-services react-native firebase-cloud-messaging amazon-sns
1个回答
0
投票

您是否已在手机中构建并安装了应用程序?

我认为这个问题是因为你安装了Expo和“Your App”。

如果没有,我认为你已经复制了世博会令牌。请记住,Push Notifications的最佳做法是每次启动应用程序时更新Expo Token。

您可以使用expo工具测试通知。 qazxsw poi

© www.soinside.com 2019 - 2024. All rights reserved.