Firebase:只需搜索用户

时间:2014-12-12 06:21:46

标签: firebase

如果这是一个菜鸟问题,请原谅我。我只是试图在我的收藏中搜索用户的存在。我一直在密切关注教程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方法,但这不是本教程所说明的内容。这一切我哪里错了?谢谢。

1 个答案:

答案 0 :(得分:2)

根据startAt() method docsstartAt()endAt()的行为将取决于您在查询中定义的orderBy*()方法。

在您的查询中,您尚未指定默认排序,因此它使用Firebase默认排序的第一个优先级和第二个密钥。在该上下文中,startAt()endAt()的第一个参数是优先级,第二个参数是 key

进行排序,这是你想要的,请尝试以下方法:

myFirebaseRef.orderByKey().equalTo('thisguy').once('value', function(snap) {
  console.log('we found your guy ', snap.val())
});