0

私はtableViewに表示したいネストされたデータを持っています。Firestore Firestoreネストした配列にスウィフトクエリー

私のデータは、私が(データの独自のコレクションを持っている)これらの投稿を表示したいテーブルビューのためにそう...

/users 
    /userid 
     name: "John" 
     age: 23 
     /likedPosts 
      0:post1 
      1:post2 

のように構成されています。私がする必要があることを行うために

...

1)、配列の数と

2)ポストの内容を取得するには、ユーザーlikedPost配列の値を照会します。

私は現在getDocument関数を使用していますが、それを把握することはできません。例えば

...

func getUserLikedPosts() { 
    if let user = Auth.auth().currentUser { 
     let userFS = Firestore.firestore().collection("users").document(user.uid) 
     userFS.getDocument(completion: { (snapshot, error) in 
      print(snapshot?) 

     }) 
    } 
} 

これはさえネストされた配列を印刷しないのですか?このような

答えて

1

何か作業をする必要があります:

func getUserLikedPosts() { 
if let user = Auth.auth().currentUser { 
    let userFS = Firestore.firestore().collection("users").document(user.uid).collection(“likedPosts”) 
    userFS.getDocuments(completion: { (snapshot, error) in 
     print(snapshot?) 

    }) 
} 
} 

あなたは子供のスナップショットにアクセスすることができFirebaseとは異なり、あなたがしたい、実際のノードにドリルダウンする必要がFirestoreで。

OPの簡単な説明の後、問題のユーザーにはfavoritePostオブジェクトがありませんでした。アレイにアクセスするには

(私はこのコードをテストしていませんのでご注意ください、それは一例です):

If let doc = document, let array = doc[“likedPost] as NSArray { 
print(array) 
} 
+0

それはコレクションではありません。これは文書内の配列です。 – pmanning

+0

ああそうです。それは残りのデータを印刷しますか? – Paulo

+0

いいえ、それはnilとは言えません。もし私がそれをやっているように印刷したら、すべてのトップレベルのデータが表示されます。名前と年齢です。しかし、ヘッダー "likedPosts"でも印刷されません。 – pmanning