由于某些原因,这两个例子没有返回相同的值。
示例1
var ref = firebase.database().ref('fruits').orderByChild('name').equalTo('Mango')
ref.once('value',function(snapshot){
console.log(snapshot.val())
})
返回:
{
"mango":{"name":"Mango"}
}
示例2
var ref2 = firebase.database().ref('fruits')
ref2.orderByChild('name').equalTo('Mango')
ref2.once('value',function(snapshot){
console.log(snapshot.val())
})
返回:
{
"apple":{"name":"Apple"},
"banana":{"name":"Banana"},
"mango":{"name":"Mango"},
"strawberry":{"name":"Strawberry"}
}
示例2的不同之处在于过滤函数应用于之后的引用,原则上应与方法链相似。
如果这不是一个错误,那么在创建参考后如何应用这些过滤功能?
答案 0 :(得分:6)
在引用上调用orderByChild()
,equalTo()
或其他一个排序/过滤方法会返回一个新对象。所以例2应该是:
var ref2 = firebase.database().ref('fruits')
var query = ref2.orderByChild('name').equalTo('Mango')
query.once('value',function(snapshot){
console.log(snapshot.val())
})