如何在 Swift 5 中将文档转换为自定义对象?

Tia*_*hen 9 ios firebase google-cloud-platform swift google-cloud-firestore

我一直在尝试将从 Firebase 的 Cloud Firestore 检索到的文档转换为 Swift 5 中的自定义对象。我正在关注文档:

但是,Xcode 向我显示Value of type 'NSObject' has no member 'data'了该行的错误try $0.data(as: JStoreUser.self)。我已将结构定义为Codable.

编码:

func getJStoreUserFromDB() {
    db = Firestore.firestore()
    let user = Auth.auth().currentUser
    db.collection("users").document((user?.email)!).getDocument() { 
        (document, error) in
        let result = Result {
            try document.flatMap {
                try $0.data(as: JStoreUser.self)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

用户结构:

public struct JStoreUser: Codable {
    let fullName: String
    let whatsApp: Bool
    let phoneNumber: String
    let email: String
    let creationDate: Date?
}
Run Code Online (Sandbox Code Playgroud)

截图:

截图

有谁知道如何解决这个问题?

Tia*_*hen 19

联系 firebase 团队后,我找到了我正在寻找的解决方案。事实证明,我必须import FirebaseFirestoreSwift明确地做,而不仅仅是做import Firebase. 此后错误将消失。(当然,您需要先将 pod 添加到 podfile 中:D)

  • https://firebase.google.com/docs/firestore/quickstart#set_up_your_development_environment (2认同)