【发布时间】:2017-09-12 01:46:16
【问题描述】:
我有一个 Firebase 数据库,其中包含一个子“消息”,其中存储了每条消息。
我只想检索应用程序中 senderID 或 ReceiverID 等于 senderID 或 Receiver ID 的值。这样我可以为每个用户整理消息。
但是,我不确定是在应用程序本地执行此操作,还是使用查询从 Firebase 执行此操作。如果可以吗?
【问题讨论】:
-
您可以use Firebase queries to filter。但是查询只能过滤单个属性,所以 either senderID or receiverID。您似乎正在建立一个聊天室,在这种情况下,我会像my answer here 那样对数据进行建模。我建议阅读NoSQL data modeling 并查看Firebase for SQL developers
-
那么,基本上你想获取发送者也是接收者的所有消息?如果是这样,我建议您在检索数据后执行此操作。
-
好吧,他们是否有其他方式,例如我需要为每个用户分组消息。像 UserA Sender 和 UserB Receiver 一样,对这些消息进行分组,并使其仅对 senderA 和 B 可用。
-
这很难回答,因为它取决于您的用例。例如,假设用户 uid 为 15D... 正在登录。通常,在登录时,该用户会将观察者(查询)附加到消息节点,如果发布了包含其接收者 ID 的消息,该节点将通知他们。如果另一个用户向接收者 ID = 15D... 的消息节点发帖,他们将立即收到通知,在这种情况下,节点中的数据将被传递到应用程序;然后他们就会知道 senderID 是谁。
标签: ios swift firebase firebase-realtime-database