【发布时间】:2017-10-08 16:20:04
【问题描述】:
我在 Firebase 中使用了 .once( 函数,并成功检索了目录的 snapshot.key NAME。但是这个键也有一个值。
当请求 snapshot.val() 时也会给出 null 鄙视它有一个值。
数据库如下所示:
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 的新手。 请注意,数据库是故意这样构造的。 我限制了“阶段”的读取权限。 游戏的工作原理只是从数据库中请求哈希作为参考,以获取内容。
【问题讨论】:
-
你确定你的参考是正确的吗?根据您显示的结构,我认为 ref 应该是“/stages/stage1”
-
我不希望任何人通过这些阶段进行查询,因为它们必须隐藏在数据库中。这样可以吗?
-
我对 /stages/ 的权限有限
-
我不熟悉数据库规则,但据我所知,您需要将 ref 设置为 stage1 节点。看起来,如果stages上面没有父节点,那么ref应该是“/stages/stage1”。那么“/stages”上的读取权限应该由规则配置。
-
但是授予对阶段的读取权限将导致 XSS 能够读取子节点,我不希望任何人知道 /stages 的子节点,除非他们知道哈希。
标签: javascript firebase firebase-realtime-database