2016-09-17 7 views
1

firebaseのキー値のペアを配列に格納する方法を教えてください。私はローカル配列からfirebaseにいくつかのデータを送信するためにコードを書いてみましたし、彼らがこのような形で保存されて気づいた:「メダル」子供が保存されているかファイヤーベースの子キー値のペアからのデータを配列として格納する

enter image description here

予告。

私は配列のスナップショットを 'メダル'オブジェクトから取り出し、それを素早く配列として返そうとしています。

let databaseRef = FIRDatabase.database().reference() 
     databaseRef.child("users").child(userID!).observeSingleEventOfType(.Value, withBlock: { (snapshot) in 
      // Get user medals 
      self.identities3 = snapshot.value!["medals"] as! [String] 

     }) 

これは非常に粗いですが、動作するのでしょうか?

ありがとうございます!まだかなりfirebaseする新しい学習:)

+0

これは動作するはずですが、あなたはそれがないかどうかを確認するためにそれをテストしていますか? – Bawpotter

+0

うん、ログに印刷するように設定して、空の配列[ –

+0

を表示しました。その場合、あなたの最善の策はDravidianが提供する以下のコードを使用することです。それはすぐにあなたの問題を解決し、あなたのデータを構造化するもっと安全な方法です。 – Bawpotter

答えて

1

これを試してみてください:

let databaseRef = FIRDatabase.database().reference() 
    databaseRef.child("users").child(userID!).child("medals").observeSingleEventOfType(.Value, withBlock: { (snapshot) in 
     // Get user medals 
     self.identities3 = snapshot.value as! [String] 

    }) 
+0

これはうまくいきました!実際には、私もそれを試してみたかったが、あなたは私に最初にやった:Pありがとう! –

1

がにあなたのJSONの構造の変更を検討: - 取得するには

Medals: { 
     Shield : true, 
     Tie : true 
     } 

: -

スウィフト3は

let array = [String]() 
    FIRDatabase.database().reference().child("users")child(FIRAuth.auth()!.currentUser!.uid).child("medals").observeSingleEvent(of: .value, with: {(snap) in 


     if let snapDict = snap.value as? [String:AnyObject]{ 


      for each in snapDict{ 

       print(each.key) 
       self.array.append(each.key) 
      } 
     } 
    }) 

スウィフト2

let array = [String]() 
    FIRDatabase.database().reference().child("users")child(FIRAuth.auth()!.currentUser!.uid).child("medals").observeSingleOfEvent(.Value, withBlock: {(snap) in 


     if let snapDict = snap.value as? [String:AnyObject]{ 


      for each in snapDict{ 

       print(each.0) 
       self.array.append(each.0) 
      } 
     } 
    }) 
+0

タプルタイプ(String、AnyObject)の値にメンバー 'key'がありません –

+0

私は自分の答えを更新しました。スウィフトシンタックスが変更されました...まだ調整中です:) – Dravidian

+0

これはかなりハードコアです。これを行うには十数通りの違いがあります。誰もが私に違う何かを教えている。あなたはGoogle用のドキュメントを作成する必要があります。 :-) 私の質問にあなたを紹介することはできますか?私はすごく欲しいと思っていません.SSON、構造を示しています。他のソリューション(swift3)が大歓迎です。ありがとう! :-) http://stackoverflow.com/questions/39851347/firebase-and-swiftyjson-parsing-quetion –

関連する問題