[Firebase][swift]RealtimeDataBaseリレーションを使って作っているのですが
値をtableCellに渡せません。
仕様
ユーザーは
イベントを投稿して
そのイベントに対してコメントをつけられる
コメントはtableviewCellで並ぶ
リレーションを使って取得します
そんなイメージのアプリです
Eventは複数のCommentを持つ関係です
{ Events{ 0{ eventName:"hogehoge" Comments{ 0:true } } 1{ eventName:"hogehoge" Comments{ 1:true 2:true } } } Comments{ 0{ text:"hogehoge" Events{ 0:true } } 1{ text:"hogehoge" Events{ 1:true } } 2{ text:"hogehoge" Events{ 1:true } } } }
投稿の際に、.childByAutoIdでふったkeyを上記の関係のように登録させる仕組みは書けました。
で、実際にEventの相互関係のCommentを取得はできるのですが
取得したその値をCommentを表示するtableCellのtextViewに反映できません。
let fbRef = Database.database().reference(fromURL: "hogehoge") fbRef.child("Events").child(getEventID).child("Comments").observe(.value){ (snapshot,error) in let fbRef = Database.database().reference(fromURL: "hogehoge") fbRef.child("Events").child(getEventID).child("Comments").observe(.value){ (snapshot,error) in var tempItems = [NSDictionary]() //NSDctionaryの配列 for item in (snapshot.children){ // コメントのkey let key: String = (item as AnyObject).key //print("key" + key) //key取得できた // コメントのキーから Comments の情報を取得する fbRef.child("Comments").child(key).observe(.value){ (snapshot,error) in let value = snapshot.value as? NSDictionary tempItems.append(value!) print(tempItems) //A 取得した値が入ってる } } print(tempItems) //B 取得した値が入ってない からっぽ[] self.items = tempItems print(self.items) //ここもからっぽ eventIDを使ったcommentの取得 } }
書き方が間違ってる箇所がわかりません。
アドバイスいただけないでしょうか
よろしくお願いします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/01 09:56
2018/08/06 23:22
2018/08/15 01:41 編集
2018/08/08 06:40
2018/08/08 07:18