0

因此,我一直在使用Firebase作为我的网站(这是一个基于Web的项目,使用HTML,CSS和JS)的数据库,我遇到了从它检索数据的问题。需要帮助从Firebase检索数据

基本上这个网站允许用户为角色创建一个配置文件(他们可以填写名称,角色统计信息等),当他们点击提交时,它会保存他们填写到数据库的值。

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

因此,为了获得型材,我一直在尝试使用这段代码以获得无论是存储在指定.REF(路径):

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

其中根据火力地堡文档应该在我在.ref()中指定的路径返回一个键列表。然而,每当我试图访问无论是在变种,它只是给我一个包含链接,看起来像这样的数据库中的字符串:

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

哪里#mydatabaseurlhere是我在火力地堡的应用程序创建的URL,而uid是认证用户的ID。

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

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

回答

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()); 
    }); 
}); 
+0

哦,这就是你如何使用快照。这些文档让它有点混乱,让我觉得使用听众和使用快照是两码事。非常感谢你的帮助! – shstyoo