2016-09-22 2 views
0

firebase 3.0을 사용하여 쿼리에서 목록을 추출하려는 프로젝트를 빌드 중입니다. 나는 이것에 아주 새롭다 그러나 나는 나의 질문에 간단한 응답이다는 것을 상상한다.firebase 3.0 on query

나는이 구조가 :

requests : { 
     luke1 : { 
       1 : { 
        .../... 
        users : { 
           0 : { 
            username : joseph, 
            answered : 0 
            } 
           1 : { 
            username : mark, 
            answered : 1 
            } 
           } 
        } 
       } 
      } 

기본적으로 사용자 (luke1)에 기록 사용자 수 (요셉과 마크)에 요청을 전송하고 난이 사용자로 로그인하고있어 말할 수 : 요셉. 나는 내가 쿼리를 쓸 수있는 방법을 알고 싶어요 아직

var ref = firebase.database().ref("requests/"); 

대답하지 요셉에게 전송 된 요청의 목록을 갖고 싶어.

시간을내어 읽고 내 정보가 더 필요하면 알려 주시기 바랍니다.

답변

0

이러한 종류의 쿼리를 수행하려면 사용자의 currentID 변수를 저장해야합니다. 그 후에 다음 쿼리와 같은 것을 시도해보십시오.

var ref = firebase.database().ref("request").child(currentUserId).child("users"); 

잘못된 것이 아니라면 원하는 쿼리가 반환됩니다. 그것이 당신을 도우려는 희망!

0

Firebase (그리고 대부분의 NoSQL 데이터베이스)를 사용하는 경우 앱에서 데이터를 소비하려는 방식으로 데이터를 모델링하는 경우가 많습니다.

따라서 현재 데이터 모델을 사용하면 에 의해 명의 요청을 쉽게받을 수 있습니다.

ref.child("requests/luke1").on("child_added", ... 

하지만 당신은 아직 쉽게 요청 특정 사용자에게 을 보내 찾을 수 없습니다. 쉽게 데이터를 쿼리 수 있도록하려면, 당신은 당신의 데이터베이스에 반전 데이터 구조를 추가 할 수 있습니다

이제
received: { 
    joseph: { 
     0: { 
      from: luke1 
      answered: 0 
     } 
    } 
} 

쉽게 요셉의 답이 요청받을 수 있습니다

ref.child("received/joseph").orderByChild("answered").equalTo(0).on("child_added", ... 

귀하의 초기 응답이 가능성이 그 일종의 데이터 복제가 나쁘다. 그러나 NoSQL 데이터베이스에서는 실제로 매우 일반적입니다.

이 구조를 모델링하는 데는 여러 가지 방법이 있습니다. 화제에 중대한 소개를 위해, 나는이 기사를 NoSQL data modeling에 추천한다.

관련 문제