如何在Firebase控制台向特定的GCM/FCM设备令牌ID发送推送通知

9
在Urban Airship中,当我撰写通知时,我可以通过搜索Urban Airship的channel_id(设备ID)来针对特定用户进行定位。

enter image description here

enter image description here

enter image description here

enter image description here

我从Urban Airship发送了推送通知,如上所示,并且成功收到。现在,我想做同样的事情,向特定设备发送推送通知,但是现在要使用Firebase控制台。问题是,在Firebase中,当我需要指定目标时,在步骤中它只允许我选择“用户细分”或“主题”。我本来希望看到第三个选项:“针对特定用户”(用于向一个或多个特定的GCM / FCM设备令牌ID发送通知)。因此,我的替代方案是将GCM / FCM设备令牌ID添加到“主题”中,然后将推送通知发送到该主题,这是我以前成功完成的事情。尽管如此,那将是一种变通方法,而不是我更喜欢做这件事的方式。是否可以从Firebase控制台向特定用户(通过定义目标GCM / FCM设备令牌ID)发送推送通知?谢谢。
更新1:请注意Firebase控制台(https://console.firebase.google.com/)仅显示“用户细分”和“主题”作为“目标”的选项:

enter image description here

2个回答

18
第一步: 进入图片描述 第二步: 进入图片描述 第三步: 进入图片描述

1
顺便说一下,它没有起作用。我看到并使用了你分享的选项,但它没有起作用。通知从未收到过。我所做的是将GCM/FCM设备令牌ID添加到“主题”中,然后将通知发送到该主题。那个方法可行。不知道为什么你在答案中展示的测试功能没有将推送通知发送到我的测试手机,或者为什么即使在同一台我用于测试目的的设备上所有其他通知都正确接收,但它却没有被接收到。 - Jaime Montoya
兄弟,第一个答案是正确的,第二个是你在代码中犯了错误,所以 FCM 控制台不能正常工作。 - BlackBlind
@BlackBind 谢谢。你说得很自信,似乎没有考虑“测试”功能无法正常工作的可能性。我怀疑问题不在我的代码中,因为当我将相同的“GCM/FCM设备令牌ID”添加到一个“主题”中,然后从Firebase向该“主题”推送通知时,我确实收到了通知,这证明“GCM/FCM设备令牌ID”是属于我的设备的正确ID,并且我的实现/代码是正确的。 - Jaime Montoya
请先分享您的代码。您能分享一下您的设备ID吗? - BlackBlind
使用Firebase实现推送通知并不是一行代码就能分享的,但幸运的是,它已经为我工作了。令我惊讶的是,这个答案中分享的“测试”功能对我来说没有起作用,但除此之外,我的Firebase实现一切正常,我感到很高兴。谢谢BlackBlind :) - Jaime Montoya
显示剩余2条评论

5

按设计,控制台中的通知功能用于发送广播类型的事件。向特定用户发送警报更多是通过 API 进行编程操作。

为了发送测试消息,有一个控制台工具可以实现,这在此处有说明。

请注意,您可以通过将设备订阅到任何主题并将通知发送到该主题来向一个设备发送通知 (请记住,主题是公共的,您无法防止用户订阅它们; 在大多数情况下用于测试是可以的)。

另一种选择是通过 HTTP 或 curl 发送消息。也许最好的资源是快速入门 / 消息示例


谢谢。我已经成功地从Urban Airship迁移到Firebase,并完成了你在答案中提到的一些事情。我非常满意Firebase,不再需要支付Urban Airship会员费用。我已经使用Firebase向数千台设备免费发送推送通知。感谢Kato的回答。 - Jaime Montoya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接