2014-12-12 1 views
0

멍청한 질문이 있으면 용서해주세요. 나는 단순히 내 컬렉션에서 사용자의 존재를 검색하려고 노력하고있다. 튜토리얼 here을 자세히 읽었으며 그 결과를 낼 수 없습니다.Firebase : 사용자를 검색하기 만하면

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()) 
}); 

내 희망은 "thisguy"에 대한 결과를 제공 할 것이지만 그렇지 않습니다.

나는 사용자를 데이터베이스에 추가 할 때 밀어 넣기 방법을 사용하는 것을 선호하지만 자습서에서 설명하는 내용이 아닙니다. 이 모든 일에 내가 어디가 잘못 될까? 고맙습니다.

+0

을, "thisguy"하고는 "someoneelse"나타납니다 세트에서 인용하지 않는다. 따옴표를 제거하고 시도하십시오. – user2533521

+0

당신이 따르고있는 그 블로그 게시물은 꽤 오래되었습니다 (Firebase 자체의 나이에 비례). Firebase는 그 이후로 Rob이 그의 대답에 언급 한'orderBy ... '메소드를 통해보다 고급 쿼리 기능을 추가했습니다. https://www.firebase.com/blog/2014-11-04-firebase-realtime-queries.html 및 현재 문서 : https://www.firebase.com/docs/web/guide/retrieving-data를 참조하십시오. .html # section-queries –

+0

우리는 하나의 특정 키를 찾고 있기 때문에 여기서는 쿼리가 불필요한 것처럼 보입니다. 'myFirebaseRef.child ('thisguy ') 한 번 할 수 있습니다.'value ', function (snap) {console.log ('thisguy '+ (snap.val() === null?'does not exist ' '존재')));});' – Kato

답변

2

startAt() method docs에 해당하는 동작은 orderBy*() 메서드에 따라 달라집니다. 귀하의 요청에

, 당신은 기본 순서를 지정하지 않은, 그래서 그것은 중포 기지의 기본 첫번째 우선 순위의 주문 및 초 를 사용하고 있습니다. 이 경우 첫 번째 인수 인 startAt()endAt()우선 순위이고 두 번째 인수는 입니다.

는 경우에 당신이 원하는 에 의해 정렬하려면 다음 시도 : 페이지의 예에서

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