2017-12-21 10 views
0

私は手動でFirebaseに入力するデータのリストを持っているアプリケーションを持っています。ユーザがインデックス行を選択するTableViewに基づいて手動で入力したデータを表示するFirebaseを使用をクリック

enter image description here

それが別のビューコントローラに入り、:ここでFirebaseデータベースの画像です。そのビューコントローラ内には、選択した「名前」からのデータを取り込むテーブルビューがあります。

たとえば、[acct0]から「名前」を選択すると、「名前」と「ジャンル」も新しいテーブルビューに表示されます。

現在、以前のビューコントローラの選択に基づいてデータを印刷しようとしています。

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

関連する問題