現在firebaseから取得した値を辞書に追加できません
取得したデータprint(snap)は
Snap (age)
Snap (message) Lllllllll
Snap (name) F5ToMeuE3XbcOZymFKnkwQFUfAq1
snap.value の型は Optional<Any> です
試した事
ref.observeSingleEvent(of: .value, with: { (DataSnapshot) in for item in DataSnapshot.children{ let snap = item as! DataSnapshot let dic = snap.value as! [String : String] ←エラー個所
結果
Could not cast value of type '__NSCFConstantString' (0x110d49760) to 'NSDictionary
となりNSCFConstantString → NSDictionary
が出来ない状態?となっております
公式を見て
ref.observeSingleEvent(of: .value, with: { (DataSnapshot) in let value = DataSnapshot.value as? Dictionary
も試しましたが、エラー(Ambiguous reference to member 'value'
)が出てしまいました
試した事2
ref.observe(.value) {(snap: DataSnapshot)in var dict = snap.value as! [String:String]
こちらではうまく出来ましたが私は observeSingleEvent を使いたいので
observeSingleEventを使ってデータを辞書に追加する方法をご教授お願いします
また初心者の為やり方だけを教わってもコードに反映させる事が出来ずにお手数をかけてしまう恐れがあるので正解のコードがあると助かります。
追記
現在データは
let ref = Database.database().reference() ref.child(use).child(user1).child(userid!).setValue(data)
で保存していますが、
データ取得をchild(userid!)を除いた
ref.child(use).child(user1).observeSingleEvent(of: .value, with: { (DataSnapshot) in
で行えば辞書に追記できました。しかし私はref.child(use).child(user1).child(userid!).observeSingleEvent(of: .value, with: { (DataSnapshot) in
で取得したい状態です
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/18 09:37