javascript - Firebase 启动从数据库加载与读取新添加内容

标签 javascript firebase firebase-realtime-database

我有一个 redux-react 应用程序,在启动时监听加载所有 contactList,并监听每个添加的新联系人列表。下面的代码会导致在启动时调用 receiveContactListreceiveContact。如何在启动时调用前者,然后在添加新联系人时调用后者?

contactsRef.once('value', function(snapshot) {
  store.dispatch(receiveContactList(snapshot.val()))
})

contactsRef.on('child_added', function(snapshot) {
  store.dispatch(receiveContact(snapshot.val()))
})

最佳答案

分开处理初始数据和新数据的常见方法是使用 bool 值来跟踪状态:

var isInitialDataLoaded = false;
contactsRef.once('value', function(snapshot) {
  store.dispatch(receiveContactList(snapshot.val()))
  isInitialDataLoaded = true;
})

contactsRef.on('child_added', function(snapshot) {
  if (isInitialDataLoaded) {
    store.dispatch(receiveContact(snapshot.val()))
  }
})

这会起作用,因为初始数据的 child_added 事件保证在相应的 value 事件之前触发。

关于javascript - Firebase 启动从数据库加载与读取新添加内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40101948/

相关文章:

javascript - 如何着手允许在网格上的点之间绘制矢量?

javascript - Angular 6 每 5 秒运行一次代码,但它第一次发出

reactjs - React Native Firebase 验证码

java - 如何将 Java 项目导入 Firebase 并创建数据库?

android - 如何将 Firebase DB 中的图像保存到 Android 上的可绘制列表?

javascript - React Native KeyboardAvoidingView 覆盖最后的文本输入

javascript - Chrome 扩展 - 将 URL 从 popup.js 传递到 Firebase

android - Firebase Storage 10.2.6 -> 无法打开结果流

javascript - 在 Firebase 中处理多个 URL 以供引用?

javascript - jquery mobile 如何在 HTML 中注入(inject)类?