【问题标题】:React Native Firebase DataSnapshot反应原生 Firebase 数据快照
【发布时间】:2017-10-26 17:41:36
【问题描述】:

我正在尝试使用以下代码在我的 React Native 应用中实现 firebase:

import * as firebase from 'firebase'
var fireBaseconfig = {
apiKey: "MY KEY",
authDomain: "MY DOMAIN",
databaseURL: "MY URL",
storageBucket: "MY BUCKET",
};
var firebaseApp = firebase.initializeApp(fireBaseconfig);
var rootRef = firebase.database().ref;
var query = rootRef.ref("items");
 query.once("value")
   .then(function(snapshot) {
   snapshot.forEach(function(childSnapshot) {
   var key = childSnapshot.key;
   var childData = childSnapshot.val();
  });
});

我收到错误消息:“undefined is not a function (evalating 'rootRef.ref("items")')

我遵循了包括官方文档在内的几个教程,但未能找到解决方案。我是否为 React native 使用了正确的语法?

【问题讨论】:

    标签: javascript reactjs firebase react-native firebase-realtime-database


    【解决方案1】:

    firebase.database().ref 中,ref 是一个函数,所以应该是ref()

    由于返回Reference,您必须调用child() 才能得到一个孩子。

    所以:

    import * as firebase from 'firebase'
    var fireBaseconfig = {
    apiKey: "MY KEY",
    authDomain: "MY DOMAIN",
    databaseURL: "MY URL",
    storageBucket: "MY BUCKET",
    };
    var firebaseApp = firebase.initializeApp(fireBaseconfig);
    var rootRef = firebase.database().ref();
    var ref = rootRef.child("items");
    ref.once("value").then(function(snapshot) {
       snapshot.forEach(function(childSnapshot) {
         var key = childSnapshot.key;
         var childData = childSnapshot.val();
       });
    });
    

    我还重命名了 query 变量,因为它实际上不是查询,而只是对子位置的另一个引用。

    【讨论】:

    • 现在如果我想从快照中获取值(例如 childData.id),语法是 ref.childData 吗?我似乎无法自己获取 childData。
    猜你喜欢
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 2018-01-31
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多