2016-06-04 7 views
0

저는 Firebase과 NoSQL 데이터베이스를 사용하여 새로운 것입니다. 나는 이것을 할 수 있는지 궁금하다. 사용자 데이터베이스가있다. 이메일이나 UID로 데이터를 가져오고 싶다. ID로 두 필드를 혼합하고 나중에 queryStartingAtValue 또는 queryEndingAtValue 메서드로 필터하는 것이 가장 좋습니까?Firebase의 데이터를 ID로 믹싱하기

{ 
"users": { 
    "[email protected]": { 
     dataUser1: ----- }, 

    "[email protected]": { 
     dataUser2: ----- }, 

    "[email protected]": { 
     dataUser3: ----- }, 

    "[email protected]": { 
     dataUser4: ------ }, 
    } 
} 
+1

UID 만 사용하면 더 깨끗하지만 전자 메일로 사용자를 찾으려면 항상 하위 쿼리를 만들 수 있습니다. 또한 일부 사람들은 경로에서 사용자 개인 정보를 사용하지 않는 것이 좋습니다. 누군가가 보안 규칙의 구성에 따라 객체 및 경로의 존재 여부를 조사 할 가능성을 피하기 위해 가능한 단점은 uid를 알아야한다는 것입니다 사용자에게 직접 액세스하기 – Ymmanuel

답변

1

당신이 queryStartingAtValuequeryEndingAtValue 사용할 수 있지만이,이 솔루션은 매우 명확하지 않다, 것 그/그녀가 당신이 queryStartingAtValue 무슨 뜻인지 알고, 다른 사람이 코드를 읽고 (또는 당신 후 6 개월) 상상? 아마도 그렇지 않습니다. 내가 생각

사용하는 명확 orderByChildequalTo

예를 들어,

var ref = new Firebase("yourdb"); 

ref.orderByChild("email").equalTo("[email protected]") 
    .on(anEvent, function(snapshot) { 
     console.log(snapshot.key()); 
    });