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】:

推送通知不是根据用户发送的,而是根据您注册推送通知(iosandroid)时收到的推送通知令牌发送的。

推送通知令牌会在卸载/安装的情况下发生变化,与应用中登录的用户无关,您可以向根本没有用户的应用发送推送通知。

为了通过推送通知定位特定用户,您必须执行名为user segmentation 的操作,即根据这些用户的特定属性过滤用户。一般来说,用户细分是通过跟踪用户行为和用户属性来完成的,并且取决于使用的推送通知平台。例如,您可以在应用中跟踪用户操作,例如user added product to cartuser 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 推送通知

如果应用程序未启动,Flutter Firebase 推送通知无法数据

Flutter firebase 消息推送通知格式 3 行

Flutter Firebase前台推送通知未显示但后台正在运行

如何在没有 Firebase 和自定义后端的情况下使用 Flutter 设置推送通知