【发布时间】:2017-10-09 00:34:06
【问题描述】:
我使用 Firebase 实现了一个 iOS 匿名聊天应用。
我的应用程序有一个聊天室列表,单击该聊天室将加入一个群聊,例如 Facebook Messenger。 数据库的结构看起来像
rooms
|- AAA
|- messages
|- "aaaaa"
|- "bbbbb"
|- "ccccc"
|- BBB
|- messages
|- "ddddd"
|- "eeeee"
|- CCC
|- messages
|- "fffff"
|- "ggggg"
...
如果用户加入房间,例如AAA 和BBB。应用程序会将AAA 和BBB 存储在本地存储中。如何观察到AAA 或BBB 中添加的新消息但未观察到CCC?
我阅读了 Firebase 的文档。我可能有一些方法可以做到这一点。
- 观察整个
rooms节点并在应用程序中过滤AAA和BBB。但是我认为如果rooms太多会导致性能问题。数据量太大了。 - 为
AAA和BBB创建单独的观察者。它可能会解决我的问题,但如果我的用户加入太多rooms。观察许多节点似乎没有意义。 - 设置规则来控制可以同步哪些
rooms。但我必须记录用户进入房间。我必须管理匿名用户和聊天的关系。
有没有什么性能更好的方法可以解决我的问题?
也许喜欢
['AAA', 'BBB'].observe(.childAdded, {
// do something
})
或欢迎任何建议!
谢谢
【问题讨论】:
标签: swift firebase firebase-realtime-database