得到一次使用火力地堡网络
问题描述:
我有一个火力点数据库如下特定子项的所有儿童:得到一次使用火力地堡网络
我需要选择一个随机的声明。由于难以选择基于firebase“推”键的随机记录(基于其他SO答案),我创建了一个数字键“n:1”等,所以我可以基于随机数进行调用。这里是我的代码来检索一个随机语句:
function getStatement() {
var ref= firebase.database().ref('/totNumState/');
ref.once('value').then(function(snapshot) {
var max = (snapshot.val());
var randomIndex = Math.floor(Math.random() * max) + 1;
var rootRef = firebase.database().ref();
rootRef.orderByChild('data').equalTo('n:'+randomIndex).once("value")
.then(function(snapshot) {
console.log(snapshot.val());
});
}, function(error){console.error(error)});
}
问题:我得到一个'空'的回应我的搜索。 主要问题:我如何才能在firebase网站中获得特定孩子的所有孩子? 二级问题(相关):当我知道我想要检索的记录时,为什么firebase让我使用(资源饿了)'orderByChild'?
感谢
答
对于其他人寻找一个答案,工作解决方案基于这样的建议是:
function getStatement() {
var ref= firebase.database().ref('/totNumState/');
ref.once('value').then(function(snapshot) {
var max = (snapshot.val());
var randomIndex = Math.floor(Math.random() * max) + 1;
var st = firebase.database().ref('data/n:'+randomIndex)
st.once("value")
.then(function(snapshot) {
console.log(snapshot.val().statement);
});
}, function(error){console.error(error)});
}
由于上述仁。
你有多个名为'data'的子节点吗?因为这就是代码正在寻找的东西。如果你知道你想要的特定节点,你不必使用'orderByChild()' - 直接引用它就像'firebase.database.ref('data/n:'+ randomIndex)' –
谢谢你。加上有用的知道它不需要使用'orderByChild()' – user2206361