如果这是一个菜鸟问题,请原谅我。我只是试图在我的收藏中搜索用户的存在。我一直在密切关注教程here,但我无法提供他的结果。
var myFirebaseRef = new Firebase("https://myfirebase.firebaseio.com/pizza/users");
myFirebaseRef.set({
"thisguy": {
name: "Bill Smith",
location: {
city: "New York",
state: "NY"
},
skill: "Code"
},
"someoneelse": {
name: "Frankie Bones",
location: {
city: "Tampa",
state: "FL"
},
skill: "Jeeps"
}
});
myFirebaseRef.startAt('thisguy').endAt('thisguy').once('value', function(snap) {
console.log('we found your guy ', snap.val())
});
我的希望是它会给我#34; thisguy"的结果,但事实并非如此。
BTW:在将用户添加到数据库时,我更愿意使用push方法,但这不是本教程所说明的内容。这一切我哪里错了?谢谢。
答案 0 :(得分:2)
根据startAt() method docs,startAt()
和endAt()
的行为将取决于您在查询中定义的orderBy*()
方法。
在您的查询中,您尚未指定默认排序,因此它使用Firebase默认排序的第一个优先级和第二个密钥。在该上下文中,startAt()
和endAt()
的第一个参数是优先级,第二个参数是 key 。
按键进行排序,这是你想要的,请尝试以下方法:
myFirebaseRef.orderByKey().equalTo('thisguy').once('value', function(snap) {
console.log('we found your guy ', snap.val())
});