首页 文章

Swift查询到Firebase Firestore嵌套数组

提问于
浏览
0

我有嵌套数据,我想在tableView中显示 .

我的数据结构如此......

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

对于tableview,我想显示这些帖子(它们有自己的数据集合) .

为了做到这一点,我需要......

1)获取数组的计数和

2)查询用户likePost数组值以获取帖子的内容 .

我目前正在使用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 回答

  • 2

    这样的事情应该有效:

    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?)
    
        })
    }
    }
    

    使用Firestore,您需要深入查看所需的实际节点,这与您可以访问子快照的Firebase不同 .

    因此,经过与OP的快速讨论后,问题是这个用户没有一个likePost对象 .

    要访问该阵列(请注意,我没有测试过这段代码,这是一个例子):

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

相关问题