【发布时间】:2020-06-13 21:52:20
【问题描述】:
我有一个使用 Firebase 作为实时数据库和 React Native 的聊天应用。在最小化读取操作和传输数据方面,我试图找出最有效的方法来设置来自 Firebase 的聊天消息的侦听器。这是我的数据结构:
- messages
- chatId
- messageId
- sentBy
- timestamp
- text
在我看来,我有 2 个选项,ref.on("child_added) 或 ref.on("value")
如果我使用ref.on("child_added"),好处是发送新消息时只会检索最新消息。但问题是,当加载对话时,会为聊天中的每条消息调用read 操作。如果一个对话有数百条消息,那么这就是数百个read 操作。
另一个选项是使用ref.on("value")。这里的问题是,在添加的每条新消息上,都会重新发送整个对话,而不仅仅是最近的消息。好处是在加载会话时,只需调用一次read操作,即可将整个会话转移到屏幕上。
我想要这两者的某种组合,其中当加载对话时,有一个 read 操作会带来对话的全部内容,并且当添加新的子节点时(一条新消息)只有该消息被传输到监听器。我怎样才能做到这一点?
【问题讨论】:
标签: javascript firebase react-native firebase-realtime-database