2017-05-17 1 views
1

swift를 사용하여 firebase에서 childByAutoID를 통해 저장된 데이터의 내용에 액세스하려고합니다. 현재 나는 이것에 아주 새롭고 snapshot.value의 가치를 인쇄하고 있습니다. 각 ID에 저장된 키 값 쌍에 모두 액세스 할 수 있어야합니다. 나뿐만 아니라 값 [ "구"] 번역에 액세스 할 수있게하려면하고Firebase Swift에서 Autoid를 통해 저장된 데이터 읽기

Optional({ 
    "-KkNM7b33sqba0XF-Nob" =  { 
     phrase = "Bonjour!"; 
     translation = "Hello!"; 
    }; 
}) 

:

override func viewDidLoad() { 
     super.viewDidLoad() 

     let ref = FIRDatabase.database().reference() 

     ref.child("Phrases").observeSingleEvent(of: .value, with: { 
      snapshot in 

      let value = snapshot.value as? NSDictionary 

      print(value) 

     }) 



    } 

이 출력됩니다 :

여기에 내 현재 코드입니다.

어떻게하면됩니까?

편집 : enter image description here

답변

2

나는 일반적으로 이것이 수행 방법 : 당신이

ref.child("Phrases").observeSingleEvent(of: .value, with: { snapshot in 

    if let value = snapshot.value as? [String:Any] { 
    let name = value["phrase"] as? String ?? "" 
    } 
}) 
+0

처음이 점점 풀다 수 또는

ref.child("Phrases").observeSingleEvent(of: .value, with: { snapshot in let value = snapshot.value as! [String:Any] let name = value["phrase"] as? String ?? "" }) 

여기 dB의 사진입니다 더 가까이, 이제는 인쇄 할 때 아무 것도 안 보입니다. 비록 내가 db 안에 어떤 것이 있다는 것을 안다. 위에 내 db의 사진입니다 –

+0

이것은 귀하의 스냅 샷에 스냅 샷 하위가 포함되어 있기 때문입니다. 그들 위에 열거하고 위와 같이해야합니다. – Chris

+0

.value 대신 .childAdded를 사용했다면 위의 코드가 작동 할 수 있습니다. 하지만 그건 당신의 유스 케이스에 맞지 않을 수도 있습니다. – Chris

관련 문제