Flutter - 将 Firebase 通知推送给没有 Firebase 身份验证的特定用户
Posted
技术标签:
【中文标题】Flutter - 将 Firebase 通知推送给没有 Firebase 身份验证的特定用户【英文标题】:Flutter - push firebase notifications to specific users without firebase auth 【发布时间】:2019-08-23 11:55:16 【问题描述】:我正在使用 Firebase 推送通知,但我没有在我的应用上使用 Firebase 身份验证(我有自己的系统)。
我没有找到这个问题的答案: 是否可以在没有 Firebase 身份验证的情况下(因此,没有 UID)向具有 firebase 的特定用户推送通知?怎么样?
【问题讨论】:
【参考方案1】:推送通知不是根据用户发送的,而是根据您注册推送通知(ios 和 android)时收到的推送通知令牌发送的。
推送通知令牌会在卸载/安装的情况下发生变化,与应用中登录的用户无关,您可以向根本没有用户的应用发送推送通知。
为了通过推送通知定位特定用户,您必须执行名为user segmentation
的操作,即根据这些用户的特定属性过滤用户。一般来说,用户细分是通过跟踪用户行为和用户属性来完成的,并且取决于使用的推送通知平台。例如,您可以在应用中跟踪用户操作,例如user added product to cart
、user has x products in cart
,然后向all users that have more than 3 products in cart
发送推送通知。
所有推送通知平台都将推送通知令牌链接到触发的事件。
如果你使用firebase,最简单的方法是跟踪用户属性,这部分有很多教程。虽然在我看来,firebase 跟踪有点糟糕。
需要注意的一点,由于推送通知令牌没有直接链接到用户,如果有两个用户(两个帐户)使用同一设备,他们将在同一设备上接收推送通知,所以不要' t 通过推送通知发送敏感信息。
【讨论】:
嗨 danypata,谢谢您的信息!不幸的是,我确实需要向特定用户推送通知,在我的情况下,用户细分还不够。我会看看 OneSignal 来做到这一点。如果我发现了什么,我会在这里分享它 您可以将您的用户 ID 作为用户属性发送,然后您将做一些事情send push to the user with id
。或者您可以跟踪用户 ID,然后根据使用用户 ID 的分段发送推送。
好的,最后,正如你所建议的,我使用了我可以通过 firebaseMessaging.getToken() 或 .refreshToken 获得的注册令牌。我尝试通过传递“to”:“registration token”来向这些特定设备发送通知,并且它可以工作。但是现在,有你所说的关于同一设备上的两个用户的问题。我会自己处理。谢谢你的帮助,祝你有个美好的一天。 :)
如果您使用网络推送通知会怎样?如何使用 javascript 获取用户令牌?我似乎找不到任何东西。以上是关于Flutter - 将 Firebase 通知推送给没有 Firebase 身份验证的特定用户的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Firebase 消息传递 - 应用打开时未显示推送通知
如果应用程序未启动,Flutter Firebase 推送通知无法数据