2016-06-03 4 views
0

특정 속성이 설정된 객체가 있는지 확인하고 싶습니다. 여기 특정 쿼리를 가진 객체가 Firebase에 있는지 확인하십시오.

는 중포 기지 내 데이터가 어떻게 보이는지의 예제입니다 :

object: { 
    object-one: { 
    id: "something" 
    } 
} 

그리고 지금은 존재하지 않는 ID로 객체 가져 오기하려면 :

let objectsRef = FIRDatabase.database().reference().child("object") 
let query = objectsRef.queryOrderedByChild("id").queryEqualToValue("something else") 

query.observeSingleEventOfType(.Value, withBlock: { (snapshot) in 
    // Never get's called 
}) 

을 거기를 id = "something else" 엔 항목이 없으므로 완료되지 않습니다. 그러나 인터넷 문제로 인해 호출되지 않았는지 아니면 실제로 그 객체가 실제로 존재하지 않기 때문에 알 수 있습니까?

+0

항상 개체 1 키를 알고 있습니까? 그 값과 일치하는 여러 항목을 얻으려고합니까? 아니면 단 하나입니까? – Ymmanuel

+0

기본적으로 날씨가 특정 ID가있는 항목이 하나 이상 있다는 것을 알고 싶습니다. ID는 로그인 한 사용자의 UID가됩니다. – Georg

+1

방금 ​​q 빠른 테스트를했는데, 존재하지 않는 노드에서'.Value' 이벤트가 발생했습니다. 이 경우'snapshot.exists()'는 false입니다. 읽을 권한이 있습니까? http://stackoverflow.com/questions/37403954/the-read-failed-permission-denied-error-in-firebase/37404053#37404053 –

답변

1

당신은 valueEventListner를 사용할 수 있습니다. 현재 데이터를 가져 와서 이후 업데이트를 수신 대기합니다. 데이터가 존재하지 않는 경우 dataSnapshot.exists()는 false를 반환합니다.

내 데이터베이스에는 각 사용자 개체의 필드 중 하나 인 emailId와 함께 사용자 개체 목록이 포함되어 있습니다.

[ 
    user1: {emailId: [email protected]}, 
    user2: {emailId: [email protected]} 
] 

전자 메일 필드로 검색하여 해당 사용자가 존재하는지 여부를 확인할 수 있습니다.