2017-04-12 12 views
0

firebase에서 사용자 정보를 검색하려고합니다.Firebase가 사전에서 값을 얻을 수 없습니다.

rk70HDmNSGfugTcIbTdAKhKXE4K2 =  { 
    Email = "[email protected]"; 
    UserID = rk70HDmNSGfugTcIbTdAKhKXE4K2; 
    Username = "Johnny_Bravo"; 
}; 

이것은 검색 한 스냅 샷입니다. 나는 사용자의 이메일을 달성하기 위해 싶지만 인해 전무 값

func retreiveUsers(){ 

    databaseRef.child("Users").observeSingleEvent(of: .value, with: { (snapshot) in 

     if let fetchedUser = snapshot.value as? NSDictionary { 

      print(fetchedUser["Email"]) 

     } 
    }) 
} 

잘못된 무엇에 충돌을 얻을?

+0

당신이 UR 데이터베이스 구조의 스크린 샷을 추가하고 자, 여기 당신이가는 databaseRef –

답변

1

자세한 정보를 추가하면 훨씬 좋습니다. 나는 코멘트에 썼다.

하지만 그 문제는 databaseRef.child ("Users")가 모든 사용자 노드를 가져올 것이라고 생각합니다.

databaseRef.child("Users").observeSingleEvent(of: .value, with: { (snapshot) in 

    for item in snapshot.children { 
     let fetchedUserSnapshot = item as! FIRDataSnapshot 
     if let fetchedUser = fetchedUserSnapshot.value as? [String: Any] { 
      print(fetchedUser["Email"]) 
     }  
    } 
}) 

그것이

+0

무엇인지 보여 주시겠습니까 도움이되기를 바라보십시오 : 당신은 .child(USER_ID)를 추가하거나 같은 것을 할 필요가 –

+1

당신의 방법을 사용함으로써 나는 그것을 얻었습니다. 그러나 저는 신속하고 방화범이 드는 곳에서 진정한 멍청한 놈입니다. 그래서 당신은 무슨 일이 일어나고 있는지 설명 할 수 있습니까? –

+0

@HussainMustafa .child ("사용자")를 사용하면 모든 사용자 노드로 이동하게됩니다. 특정 사용자가 아닙니다. 따라서 "for"사이클에서는 항목을 살펴 봅니다. 그런 다음 모든 사용자 스냅 샷을 가져 와서 데이터를 가져옵니다. 다른 사람들에게 도움이 될 수 있도록 응답으로 표시하십시오. –