ios - 快速查询到 Firebase Firestore 嵌套数组

标签 ios swift firebase firebase-realtime-database google-cloud-firestore

我想在 tableView 中显示嵌套数据。

我的数据结构如下...

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

对于表格 View ,我想显示这些帖子(它们有自己的数据集合)。

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

1) 获取数组的个数

2) 查询用户喜欢的帖子数组值,得到帖子的内容。

我目前正在使用 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?)

        })
    }
}

这甚至没有打印出嵌套数组?

最佳答案

像这样的东西应该可以工作:

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 快速讨论后,问题是用户没有 likedPost 对象。

访问数组(请注意我没有测试过这段代码,它只是一个例子):

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

关于ios - 快速查询到 Firebase Firestore 嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47725359/

相关文章:

ios - 使用 firebaseSimpleLogin 确保 Firebase 用户帐户安全

iOS 推送通知操作未显示

xcode - 优化 iPad 上多张图片的加载

iphone - NSUserDefaults 在设置之前返回

ios - 在缺少 dSYM 的 iOS 9.2 中使用 Crashlytics

ios - 有没有办法在 SwiftUI 中创建新的手势?

ios - 如何正确使用 UIScrollView 和 UIPageControl?

ios - 隐藏导航栏 ios swift 生命周期方法未调用导致问题

ios - 为什么 UIViewController 子类的 Swift 默认初始化程序会两次初始化属性?

ios - 聊天消息未正确加载