【问题标题】:firebase snapshot.val() returns nullfirebase snapshot.val() 返回 null
【发布时间】:2020-01-26 14:01:57
【问题描述】:

我正在尝试从 Firebase 数据库中获取用户信息,但它总是返回 null。

export const employeesFetch = () => { const { currentUser } = firebase.auth();

return (dispatch) => {
    firebase.database().ref(`/users/${currentUser.uid}/employees`)
        .on('value', snapshot => {

            console.log("snapshot: ", snapshot.val()) // null
            dispatch({ type: EMPLOYEE_FETCH_SUCCESS, payload: snapshot.val() });
        });
};

};

【问题讨论】:

  • 您能否确认您发送的uid 是否正确,并且此 ID 存在于您的 Firebase 数据库中
  • 是的,我发送的是正确的uid
  • 您可以尝试设置,只是为了验证value 上的工作正常。在代码后面添加这些代码 firebase.database().ref(/users/${currentUser.uid}/employees).set([])
  • 谢谢我的ref值写错了。 firebase.database().ref(/users/${currentUser.uid}/employess)
  • 太棒了。不客气

标签: firebase react-native


【解决方案1】:

如果您对对象数组使用数字 ID,则 它将用 null 填充缺失的项目。例如,如果您没有元素 0,那么您的第一个项目将为空。

{
  "myList" : [ null, null, {
    "myProp" : "thing",
    "created" : 1582242432,
  }, {
    "myProp" : "another",
    "created" : 1582242555,
  }
}

Why do firebase collections seem to begin with a null row?

【讨论】:

    【解决方案2】:

    根据文档,当查询位置没有数据时,val() 返回 null:

    根据 DataSnapshot 中的数据,val() 方法可能返回标量类型(字符串、数字或布尔值)、数组或对象。也可能返回null,表示DataSnapshot是 空(不包含数据)。

    DataSnapshot 对象的内部内容不能直接使用。请改用公共 API。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 2020-05-16
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      相关资源
      最近更新 更多