【问题标题】:Insert Firestore Document Data from Current User into Collection View将当前用户的 Firestore 文档数据插入集合视图
【发布时间】:2020-10-29 10:41:17
【问题描述】:

我试图做的是检索特定用户(用户的书籍)的 Firestore 数据并将其放在像 picture 这样的集合视图中。目前我只能在控制台上打印文档数据,这就是我卡住的地方。如果您能提供帮助,这是我的 Firestore data 和我的代码。我没有插入收藏视图代码,因为收藏视图单元格只有一个图像视图(书籍图像)。在此先感谢:)

func fetchUserBooks() {
        guard let uid = Auth.auth().currentUser?.uid else { return }
        Firestore.firestore().collection("books").document(uid).getDocument { (document, error) in
            if let document = document, document.exists {
                let dataDescription = document.data()
                print(dataDescription ?? "")
            } else {
                print("Document does not exist")
            }
        }
    }

【问题讨论】:

    标签: ios swift google-cloud-firestore uicollectionview


    【解决方案1】:

    您可以使用此 pod:CodableFirebase 来解码来自 Firestore 的文档。您需要创建一个结构/类来保存来自数据库的数据。

    struct Book: Codable {
      var description: String?
      .....
    }
    

    之后,方法 fetchUserBooks() 可能如下所示:

    Firestore.firestore().collection("books")....
    guard let model = try? FirestoreDecoder().decode(Book.self, from: document.data()) else { return }
     
    

    请记住,您正在使用异步代码,您需要使用完成处理程序。

    【讨论】:

    • 好的,所以我确实有一个结构来保存名为 UserBooks 的数据,是否可以在没有 pod 的情况下做到这一点?我还提到我能够在 Xcode 控制台上打印出数据,但是当我这样做时 letgenre = dataDescription?[genre] as?细绳 ?? "" 归零。你知道为什么吗?
    • @ditto 它返回 nil 因为您的 genre 在 Firestore 的数组中。
    • @Koh 我该如何解决这个问题
    • @ditto 我建议一个文档是一个 UserBook 对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 2019-07-15
    相关资源
    最近更新 更多