作者:曼珠沙華的朦朧_759 | 来源:互联网 | 2023-02-07 23:46
以下是我要查询的Firebase参考结构:
- someData
-KgWw4iasffsD-vht3QA <=== Firebase generated key
- fieldA: '12345'
- fieldB: 'here it is'
我想查询,关键例如.fieldB,并测试其值.例如.fieldB ='那里是'
这是我尝试但我的语法错误:
var theRef = firebase.database().ref('someData').equalTo({fieldB: 'there it was'});
我怎样才能做到这一点 ?谢谢你的帮助.
1> cartant..:
是的,您可以使用orderByChild
和equalTo
创建查询ref:
var theRef = firebase.database()
.ref('someData')
.orderByChild('fieldB')
.equalTo('there it was');
请注意,您需要使用Firebase安全规则创建索引.否则,someData
将检索所有数据,并在客户端上执行查询.
要执行一次查询,您可以执行以下操作:
theRef.once('value',
function (snapshot) {
snapshot.forEach(function (child) {
console.log(child.key, child.val());
});
},
function (error) {
console.log(error);
}
);
或者,使用返回的Promise:
theRef.once('value')
.then(function (snapshot) {
snapshot.forEach(function (child) {
console.log(child.key, child.val());
});
})
.catch(function (error) {
console.log(error);
});
或者,要查询数据并继续侦听更改,您可以执行以下操作:
theRef.on('value',
function (snapshot) {
snapshot.forEach(function (child) {
console.log(child.key, child.val());
});
},
function (error) {
console.log(error);
}
);