在Swift中从Firestore读取数据

问题描述

我目前正在开发IOS应用程序,并且我需要一个数据库!我选择了Google Firestore!我需要阅读我创建的包含子字段的字段! 像这样:

db.collection("usersorders").document(uid).collection("order").addDocument(data: ["items":0,"order":["Book1":0,"Book2":0,"Book3":0]]){ (error) in
                
                if error != nil {
                    // Show error message
                    print("Error saving user data")
                }
            }

例如,我需要在其中读取“ Book1”值的地方!我到过很多地方,但是似乎找不到我想要的东西。从文档的字段中读取子字段!

@IBAction func AddtoCart(_ sender: Any) {
    let uid = user!.uid
    let docRef = db.collection("usersorders").document(user!.uid).collection("order").document()


    docRef.getDocument(source: .cache) { (document,error) in
        if let document  = document {
            let Book1  = document.get("Book1")
            let Items = document.get("items")
            
            let Book1Now = Book1 as! Int + 1
            let ItemsNow = Items as! Int + 1
            
            
                  
        
}
    }}

这是我一直在做的事,但是没有用!编写代码以使用Items / Book1更新数据库后,它现在的值就不会更新!请帮助我

解决方法

鉴于您的文档数据如下所示:

["items":0,"order":["Book1":0,"Book2":0,"Book3":0]]

首先,您需要访问文档中的order字段,然后才能在该字段中找到项目

let order = document.get("order")

据我所知,这使order成为字典,因此您可以使用以下命令从中获取特定值:

let book1 = order["Book1"] as Int