我有一个firebase数据库,如下所示:
我需要选择随机声明。由于难以根据firebase'push'键选择随机记录(基于其他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网站上获得特定孩子的所有孩子? SECONDARY QUESTION(相关):当我确切知道我想要检索的记录时,为什么firebase会让我使用(资源饥饿)'orderByChild'?
感谢
答案 0 :(得分:0)
对于寻求答案的其他人,基于该建议的工作解决方案是:
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)});
}
感谢上面的Jen。