【发布时间】:2016-10-17 18:54:57
【问题描述】:
我刚刚开始熟悉新的 Firebase 产品,我希望一些 Firebase 专家可以验证我的方法。
我想使用 Firebase 云消息传递向我的应用用户的子集(个人和组)发送推送通知。至关重要的是,我还想同时针对每个用户的 uid 存储一些信息(在 Realtime DB 中)。我的/users 节点看起来像这样:
/users
-uid (the unique id created by Firebase)
-firstname
- ...
- msgHistory
-msgId
-date
-text
-...
无论他们是否选择推送消息,我都需要更新所有目标用户的 msgHistory。那么,下面的方法有意义吗?
- 为每组用户创建我自己的目标 uid 列表(我想我不能使用主题,因为我想定位那些还没有选择推送通知的用户?)
那么当我想向那个群组发送消息时,
- 循环通过每个 uid 更新其 msgHistory 节点和...
- 如果用户允许,发送推送通知
假设:
- 所有用户都将通过身份验证(电子邮件、Google 和 Facebook)
- 现阶段我只关心 iOS 设备
【问题讨论】:
-
我不完全确定您的分组机制,但除此之外,您所描述的似乎确实是一种常见的方法。主题听起来也是一种有效的方法。满足您的应用条件后,只需致电
subscribeToTopic()。 -
@FrankvanPuffelen 感谢该方法的评论和链接。就“分组策略”而言,我的应用程序基本上是一个业务目录,因此用户将按地理区域、他们对类别的兴趣或对个别业务的兴趣进行分组(定位)。我可以看到这如何适用于主题,但我的查询是主题订阅是否可用于识别订阅者,以便我可以在用户节点上存储数据(例如我的示例中的 msgHistory)。我的假设是我必须在用户节点(或 /subscribers 节点中的 uid)上存储订阅记录才能做到这一点。有意义吗?
-
没有要求您维护用户订阅的主题,一旦用户满足要求订阅它们,当他们不取消订阅它们时。然后你可以发送到主题,只有那些订阅的用户才会收到消息。您可以映射出于其他原因订阅用户的主题,但发送消息不是必需的。
标签: firebase firebase-realtime-database firebase-cloud-messaging