所以我一直在使用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 /上设置规则,允许任何人读/写数据库,但我仍然无法访问数据(或者我正在访问,我只是想知道如何检索它)。
无论哪种方式,我都想知道如何访问这些数据,因为我非常困惑为什么我似乎无法检索已成功写入数据库的数据。
答案 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());
});
});