2017-05-16 6 views
0

は、私は、オートIDなしでArrayなどのメッセージを取得する必要が辞書の代わりに配列データを取得するにはどうしたらいいですか?

- "Some key" 
    - "messages" 
     - "child by autoid" 
      - "text": String 
      - "sender": String 
     - "child by autoid" 
      - "text": String 
      - "sender": String 
    - "create_date": Date 

を含むmessages子供を持っています。それをしてもいいですか? 私はそれを行う方法を見つけることができません。

今、私は辞書にそれを検索し、配列にマップします。マッピング中にインデックスが変更されるという問題があります。どのように配列にそれを取得できますか?

+0

どのように配列にマッピングしていますか?あなたがそれをしている間にどのインデックスが変更されますか? autoIdの何が問題なの?問題を示すコードを表示できますか? – Jay

答えて

1

子値から"messages"の値を確認し、子からFIRDataSnapshotの配列を作成できます。

let ref = FIRDatabase.database().reference().child("messages") 
ref.observe(.value, with: snapshot in { 
    // each snap in snapshots  
    if let snapshots = snapshot.children.allObjects as? [FIRDataSnapshot] { 
     for snap in snapshots { 
      // do things 
     } 
    } 
}) 
+0

ありがとうございましたJen、しかし私はまた、 "create_date"(これ以上の情報があります)が必要でした。だから私は子供を "メッセージ"と "create_date"の上で観察しなければなりません。 – Oniikal3

+0

または、私は "子どものいる"という "メッセージ"と "いくつかの鍵"の両方を観察する必要がありますか? – Oniikal3

+0

両方を観察することは間違いなく、特にデータが1つの共通の目的には必要でない場合には、オプションです。 "メッセージ"と "create_date"の関係は何ですか?彼らは同じ鍵の下にいる必要がありますか?なぜ "create_date"を "メッセージ"の下に置くことができないのですか? –

関連する問題