2017-12-21 3 views
0

수동으로 Firebase에 입력하는 데이터 목록이있는 응용 프로그램이 있습니다. 사용자가 인덱스 행을 선택하면TableView를 기반으로 수동으로 입력 된 데이터 표시 Firebase 사용을 클릭하십시오.

enter image description here

는 다른 뷰 컨트롤러로 진행하고, 다음은 중포 기지 데이터베이스의 이미지이다. 그보기 컨트롤러 안에는 내가 선택한 "이름"의 데이터로 채우려는 테이블 뷰가 있습니다.

예를 들어 [acct0]에서 "name"을 선택하면 "name"과 "genre"를 새 tableview에도 표시해야합니다.

현재 이전 뷰 컨트롤러의 선택에 따라 데이터를 인쇄하려고합니다.

let user = User() 

ref?.child("FeaturedAccounts/AccountNames").child(user.name!).observeSingleEvent(of: .value, with: { (snapshot) in 
    let userDict = snapshot.value as! [String: Any] 
    let genre = userDict["genre"] as! String 
     print("Genre: \(genre)") 
     print(user.name!) 
}) 
+1

현재 문제는 무엇입니까? 오류가 있거나 데이터가 없습니다. – DoesData

답변

0

귀하의 질문에 저에게 맞는 것 같습니다. 더 많은 정보가 없이는 무엇이 잘못 될지 정확하게 말하기 어렵습니다. 다음은 문제를 디버그하는 데 사용할 수있는 몇 가지 코드입니다. 좀 더 많은 코드를 게시하거나 현재 쿼리가 진행되고있는 상황을 정확하게 설명하면 더 많은 것을 도울 수 있습니다.

let user = User() 
let ref = Database.database().reference() 

ref.child("FeaturedAccounts").child("AccountNames").child(user.name!).observeSingleEvent(of: .value, with: { (snapshot) in 
    if snapshot.exists() { 
     print(snapshot.value) 
    } 
    else { 
     print("Query returned no data") 
    } 

    if let userDict = snapshot.value as? [String: AnyObject] { 
     if let genre = userDict["genre"] as? String { 
       print("Genre: \(genre)") 
     } 
     else { 
      print("could not cast genre to string") 
     } 
    } 
    else { 
     print("Could not cast userDict") 
    } 
}) 
+0

"쿼리가 데이터를 반환하지 못했습니다."및 "userDict를 캐스팅하지 못했습니다."라는 메시지가 나타납니다. 난 이전에보기 컨트롤러에서 데이터를 올바르게 전달하지 않는다고 생각합니다. – user3839056

+0

사용자 등급 게시. 그 쿼리는 인쇄 중이라면 데이터를 가져 오지 않습니다. 사용하려는 값을 수동으로 입력 해보십시오. – DoesData

관련 문제