【问题标题】:Need helping retrieving data from Firebase需要帮助从 Firebase 检索数据
【发布时间】:2017-02-08 10:40:30
【问题描述】:

所以我一直使用 Firebase 作为我网站的数据库(这是一个基于 Web 的项目,使用 HTML、CSS 和 JS),我在从中检索数据时遇到了问题。

基本上,该网站允许用户为角色创建个人资料(他们可以填写姓名、角色统计信息等...),当他们点击提交时,它会将他们填写的值保存到数据库中。

这些值保存得很好,但是当我去检索数据时,该命令似乎没有做任何事情。

所以为了获取配置文件,我一直在尝试使用这段代码来获取存储在指定 .ref(path) 中的任何内容:

var uid = firebase.auth().currentUser.uid;
var getChar = firebase.database().ref('/users/' + uid + '/chars/').orderByKey();

根据 Firebase 文档,这应该返回我在 .ref() 中指定的路径处的键列表。但是,每当我尝试访问 var 中的任何内容时,它只会给我一个包含指向数据库的链接的字符串,如下所示:

https://#mydatabaseurlhere.firebaseio.com/users/uid/chars

#mydatabaseurlhere 是我在 Firebase 应用上创建的 url,而 uid 是经过身份验证的用户 ID。

我一直在阅读文档,它告诉我上面的代码应该返回一个列表,其中包含我指定的路径中的任何内容,但到目前为止它只是给了我一个链接。文档中是否缺少某些东西可以让我访问数据库中当前的任何数据?因为我尝试使用 .once() 拍摄快照也无济于事。我还在 /users/ 上设置了规则,以允许任何人读/写数据库,但我仍然无法访问数据(或者我正在访问,我只是想念如何检索它)。

无论哪种方式,我都想知道如何才能访问这些数据,因为我非常困惑为什么我似乎无法检索已成功写入数据库的数据。

【问题讨论】:

    标签: javascript firebase firebase-realtime-database firebase-authentication


    【解决方案1】:

    您正在定义一个查询。但这还没有检索到数据。

    要检索数据,您需要附加一个侦听器。例如:

    var uid = firebase.auth().currentUser.uid;
    var getChar = firebase.database().ref('/users/' + uid + '/chars/').orderByKey();
    
    getChar.on('value', function(snapshot) {
        snapshot.forEach(function(child) {
            console.log(child.key, child.val());
        });
    });
    

    【讨论】:

    • 哦,这就是您使用快照的方式。文档让它有点混乱,让我觉得使用监听器和使用快照是两件不同的事情。非常感谢您的帮助!
    猜你喜欢
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    相关资源
    最近更新 更多