2017-08-01 24 views
-1

firebaseからどのように子ノードを取得できますか? Firebase構造体はここにある:firebaseから子ノードを取得する(Swift)

firebase struct

私は、上記のそれぞれの子の子「写真」を取得する必要があります。そして、後でcollectionViewに各子供の "写真"を追加します。

マイfirebase構造体:助けを

{ 

"Студии" : { 
"Бабулька" : { 
    "Photo" : { 
    "image" : "https://firebasestorage.googleapis.com/v0/b/test2-29e4b.appspot.com/o/city3.jpg?alt=media&token=12a87c0c-ade1-43f9-b76b-ecdaa86cf185" 
    }, 
    "address" : "Сатурн", 
    "image" : "https://firebasestorage.googleapis.com/v0/b/test2-29e4b.appspot.com/o/city3.jpg?alt=media&token=12a87c0c-ade1-43f9-b76b-ecdaa86cf185", 
    "image1" : "https://firebasestorage.googleapis.com/v0/b/test2-29e4b.appspot.com/o/city3.jpg?alt=media&token=12a87c0c-ade1-43f9-b76b-ecdaa86cf185", 
    "name" : "Карапулька" 
}, 
"Дубаи" : { 
    "Photo" : { 
    "image" : "https://firebasestorage.googleapis.com/v0/b/test2-29e4b.appspot.com/o/city1.jpg?alt=media&token=c442fd8f-4cc4-4e30-8242-975aaf5427dc" 
    }, 
    "address" : "Тутушка", 
    "image" : "https://firebasestorage.googleapis.com/v0/b/test2-29e4b.appspot.com/o/city1.jpg?alt=media&token=c442fd8f-4cc4-4e30-8242-975aaf5427dc", 
    "name" : "Дубаи" 
}, 
"Лондон" : { 
    "Photo" : { 
    "image" : "https://firebasestorage.googleapis.com/v0/b/test2-29e4b.appspot.com/o/oko1.jpg?alt=media&token=fedea2cb-93b1-496c-9392-0b95f4ada7b5" 
    }, 
    "address" : "Бейкер стрит", 
    "image" : "https://firebasestorage.googleapis.com/v0/b/test2-29e4b.appspot.com/o/oko1.jpg?alt=media&token=fedea2cb-93b1-496c-9392-0b95f4ada7b5", 
    "name" : "Лондон" 
    } 
    } 
} 

感謝。

+0

https://stackoverflow.com/a/45369544/7715250 –

+0

次のような構造を想定画像はありません。そうすれば、答えに構造を使用する必要があれば、再入力する必要はありません。 FirebaseのコンソールからテキストとしてFirebaseの構造を取得できます。> 3ドット>書き出しJSON – Jay

+0

ありがとうございました。私は問題のfirebase構造体を追加しました。 –

答えて

0

目的のデータを取得するには、メインの親ノードのすべての子ノートを反復処理します。 、テキストとしてあなたのFirebase構造を投稿してください

posts 
    post_0 
    Photo 
     image: "https://www....." 
    post_1 
    Photo 
     image: "https://www....." 

や画像のURLを取得するためのコード...

let ref = self.ref.child("posts") 
ref.observeSingleEvent(of: .value, with: { snapshot in 
    for child in snapshot.children { 
     let snap = child as! DataSnapshot 
     let imageSnap = snap.childSnapshot(forPath: "Photo") 
     let dict = imageSnap.value as! [String: Any] 
     let url = dict["image"] as! String 
     print(url) 
    } 
}) 
+0

ありがとう、それは動作します;)たぶんあなたは画像の配列を読み込む方法をプロンプトすることができますか?たとえば、各「写真」に「画像1」、「画像2」、「画像3」、またはそれ以下の画像が表示されます。 –

+0

Firebase Arrayにデータを保存しないでくださいFirebase Arrays Are Evilは[この質問]に対する私の答えを見てください(https://stackoverflow.com/questions/43179477/firebase-changing-layout-of-child-data-information-in -android/43191862#43191862)。それらはキー:値のペアとして格納され、キーはchildByAutoIdによって生成されます。イメージ/ firebase_key_0:image0と/ images/firebase_key_1:image1などとなります。 – Jay

関連する問題