需要帮助从Firebase检索数据

时间:2016-09-29 23:33:30

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

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

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

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

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

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应用上创建的网址,而uid是经过身份验证的用户ID。

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

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

1 个答案:

答案 0 :(得分: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());
    });
});