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

Pie*_*ier 1 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())
})
Run Code Online (Sandbox Code Playgroud)

返回:

{
    "mango":{"name":"Mango"}
}
Run Code Online (Sandbox Code Playgroud)

例2

var ref2 = firebase.database().ref('fruits')
ref2.orderByChild('name').equalTo('Mango')
ref2.once('value',function(snapshot){
    console.log(snapshot.val())
})
Run Code Online (Sandbox Code Playgroud)

返回:

{
    "apple":{"name":"Apple"},
    "banana":{"name":"Banana"},
    "mango":{"name":"Mango"},
    "strawberry":{"name":"Strawberry"}
}
Run Code Online (Sandbox Code Playgroud)

示例2中的差异在于过滤函数在创建之后应用于引用,原则上应该类似于方法链接.

如果这不是错误,那么在创建引用如何应用这些过滤器函数?

你可以在这个JsFiddle中看到这个

Fra*_*len 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())
})
Run Code Online (Sandbox Code Playgroud)