javascript - Firebase 获取路径上的所有数据仅返回第一个对象

标签 javascript firebase react-native firebase-realtime-database expo

在我位于 componentWillMount 的 React Native Expo 应用程序中,我想获取 Firebase 数据库路径中的所有数据

  componentWillMount() {
    firebase.auth().onAuthStateChanged(user => {
      if (user) {
        this.setState({ isAuthenticated: true, uid: user.uid });
        firebase.database().ref(`/users/${user.uid}/memories`)
          .once("value").then(snapshot => {
            console.log(snapshot.val());
            console.log(snapshot);
            /* a dispatch from redux rematch */
            this.props.addMemory(snapshot.val());
          });
      } else {...}
    });
  }

但是console.log显示仅返回第一个对象。
我调用的事件名称是否正确?这是在应用程序启动时获取所有数据的正确方法吗?

最佳答案

您需要更改此设置:

.once("value").then(snapshot => {

对此:

.on("value").then(snapshot => {
<小时/>

一次

仅监听指定事件类型的一个事件,然后停止监听。

更多信息在这里:

https://firebase.google.com/docs/reference/js/firebase.database.Reference#once

关于javascript - Firebase 获取路径上的所有数据仅返回第一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49250812/

相关文章:

firebase - 为什么我的Firebase代码中的 “object”用红色下划线?

reactjs - 添加 contentComponent 后,React 抽屉导航变为空白

javascript - 链接到函数

javascript - 在 vuejs 组件中添加 window.resize 事件不能独立工作

android - RxFirebase 'observeSingleValueEvent' 实现阻止它返回空子值

android - 无法将任何客户端添加到您的 Firebase 项目

javascript - 将函数添加到队列中以便稍后执行。终极版

ios - 升级以响应 native 0.59.10 后无法加载包 (ios)

javascript - 尝试使用 ModalService。出现 "ModalService is undefined"错误

javascript - 单击导航菜单链接时使用 javascript 折叠/展开 DIV