2017-10-08 53 views
0

我使用Firebase中的.once(函数,并成功检索目录的snapshot.key名称。但这个关键也有价值。 当请求snapshot.val()时也会给出null,它会让它有一个值。Firebase检索快照值为空

数据库看起来是这样的:

stages { 
    stage1AVERYLONGHASH : "values i want to get" 
    stage2AVERYLONGHASH : "values i want to get" 
    } 

我的代码

var ref = "stage1AVERYLONGHASH"; 
    var branch = firebase.database().ref(ref).once('value').then(function(s){ 
    console.log(s.key); // GIVES THE CORRECT ANSWER 
    console.log(s.val()); //GIVES null ... doesn't give me the "values i want.." 

我在做这完全错了吗? 我是Firebase的新用户。 请知道数据库是有意这样构造的。 我限制“阶段”的读取权限。 该游戏的工作原理就是从数据库请求一个散列作为参考,以获得内容。

+0

你确定你的ref是正确的吗?按照你显示的结构,我认为裁判应该是“/ stages/stage1” – davidchoo12

+0

我不希望任何人通过阶段查询,因为他们必须隐藏在数据库中。这个可以吗? – Firebas3r

+0

我对/ stages/ – Firebas3r

回答

0

我想你想获得阶段的参考,然后从他像得到阶段1参考:

.REF(“舞台”)子(“阶段1”)

我不知道实际的语法,但我知道这是我如何让我的firebase数据在android工作室

+0

谢谢,是的,数据库是奇怪的结构,因为我需要保护“舞台”的整个孩子,我不希望任何人不知道孩子的钥匙读取它们。 – Firebas3r

+0

您不应该将儿童名称作为安全措施,您应该使用Firebase身份验证系统 –

+0

孩子的名字是非常长的哈希,我希望人们能够在未经身份验证的情况下播放它。 – Firebas3r