1 回答
TA贡献1796条经验 获得超7个赞
just不能确定是否没有数据child_*,您将需要一个value侦听器。
要处理value事件获得的多个子代,可以使用:
firebase.database().ref('users').child(props.currentUser.uid).child('traits').orderByChild('field').equalTo(traitName).once('value', snapshot => {
if (snap.exists()) {
console.log('found');
snapshot.forEach(function(child) {
console.log(child.key);
})
}
else{
console.log('did not find any children');
}
})
如果您只关心是否存在任何子项,而又不需要其他子项,则可以将查询限制为一个结果:
firebase.database().ref('users')
.child(props.currentUser.uid).child('traits')
.orderByChild('field').equalTo(traitName)
.limitToFirst(1)
.once('value', snapshot => {
但是您仍然需要在forEach这里进行调用,因为API不知道只会有结果-或至少在这种情况下没有重载。
您还可以结合child_*和value事件。Firebase仅在幕后检索一次数据,因此对同一数据使用多个侦听器不会有任何损失。
添加回答
举报