Cloud Firestore和Swift-检索文档并将字段分配给变量以进行处理

时间:2018-07-27 16:28:27

标签: swift google-cloud-firestore

我已经使用get()成功检索了单个文档的内容,但是我似乎无法弄清楚如何将字段分配给变量。 https://firebase.google.com/docs/firestore/query-data/get-data

let docRef = db.collection("ask").document(uid!)

docRef.getDocument { (document, error) in
    if let document = document, document.exists {
        let dataDescription = document.data().map(String.init(describing:)) ?? "nil"
        print("Document data: \(dataDescription)")
    } else {
        print("Document does not exist")
    }
}

输出:

  

文档数据:["q1": 1, "q2": 1, "q3": 0, "q4": 0]

所有值都是布尔值,true或false。

如何将文档中的字段分配给变量,以便可以根据用户答案执行代码:

var q1 = [?]
if q1 == false {
    //false code
} else {
    //true code
}

谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我会这样推荐:

let docRef = db.collection("ask").document(uid!)

docRef.getDocument { (document, error) in
    if let document = document, document.exists {
        let dataDescription = document.data().map(String.init(describing:)) ?? "nil"
        print("Document data: \(dataDescription)")

        let data = document.data()

        let q1 = data!["q1"]! as? Bool ?? true

        if q1 == false {
         //false code
        } else {
        //true code
        }
    } else {
        print("Document does not exist")
    }
}