swift firestore无法检查文档值是否为零

swift firestore无法检查文档值是否为零,swift,google-cloud-firestore,Swift,Google Cloud Firestore,我的云firestore数据库中有以下数据结构: 在我的数据解析方法中,我尝试以下操作: if document.get("decisions") == nil{ object.decisions = document.get("decisions") as! [String: String] } 结果是应用程序崩溃了,因为my if子句允许获取数据,即使“decisions”为null

我的云firestore数据库中有以下数据结构:

在我的数据解析方法中,我尝试以下操作:

    if document.get("decisions") == nil{
                        object.decisions = document.get("decisions") as! [String: String]
                        }
结果是应用程序崩溃了,因为my if子句允许获取数据,即使“decisions”为null

if document.get("decisions") != nil{
    object.decisions = document.get("decisions") as! [String: String]
}

我想说的是,您最好进行一次安全检查,并将类型如下:

if let decisions = document.get("decisions") as? [String: String] {
    object.decisions = decisions
}

您可以这样做,将null值转换为nil,并且不会导致应用程序崩溃

func nullToNil(value : AnyObject?) -> AnyObject? {
    if value is NSNull {
        return nil
    } else {
        return value
    }
}

object.decisions = nullToNil(dict["decisions"])
或者你可以使用

object.decisions = document.get("decisions") as? [String: String]

强制铸造是危险的。应用程序可能仍会崩溃。感谢您的建议。你可以通过编辑来优化我的答案。你的答案和问题是一样的,不是吗?不。我只是更改了条件运算符。啊,我的错…!:'D无论如何,您将在Swift中使用可选的展开。在这里,您将获取两次“决策”。您好,您可以使用if-let或guard-let。