首页 文章

需要帮助从Firebase检索数据

提问于
浏览
0

所以我一直在使用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 回答

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

相关问题