如何在创建Firebase参考后将其添加到Firebase参考

时间:2016-07-30 06:01:58

标签: javascript firebase firebase-realtime-database

由于某些原因,这两个例子没有返回相同的值。

示例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的不同之处在于过滤函数应用于之后的引用,原则上应与方法链相似。

如果这不是一个错误,那么在创建参考后如何应用这些过滤功能?

You can see this running in this JsFiddle

1 个答案:

答案 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())
})