【问题标题】:Cannot invoke 'setData' with an argument list of type '([String : Any], completion: ((Error?) -> Void)?)'无法使用类型为“([String:Any],完成:((错误?)-> Void)?)”的参数列表调用“setData”
【发布时间】:2018-11-24 20:51:21
【问题描述】:

我正在尝试通过 Google Cloud Firestore 为我的应用创建注册方法,但我在以下链接中收到以下错误:

Expected an argument list of type '([String : Any], completion: ((Error?) -> Void)?)'

我是 Swift 和 iOS 开发的新手。有人可以在这里帮忙解释一下这个问题吗?

现在我编译成功了:

 guard let userId = authResult?.user else { return }
        let userData: [String: Any] = [
            "firstName" : "",
            "User ID" : userId,
            "dateCreated" : FieldValue.serverTimestamp(),
            ]
        let db = Firestore.firestore()
        db.collection("users").document("one").setData(userData) { err in
            if let err = err {
                print("Error writing document: \(err)")
            } else {
                print("Document successfully written!")
            }
        }
    }
}

}

但它给了我运行时错误: terminating with uncaught exception

有人知道这是什么意思吗?

【问题讨论】:

    标签: ios swift firebase firebase-authentication google-cloud-firestore


    【解决方案1】:

    这是setData 的语法Docs

    // Add a new document in collection "cities"
    db.collection("cities").document("LA").setData([
        "name": "Los Angeles",
        "state": "CA",
        "country": "USA"
    ]) { err in
        if let err = err {
            print("Error writing document: \(err)")
        } else {
            print("Document successfully written!")
        }
    }
    

    【讨论】:

    • 我似乎没有正确设置数据。所以我可以做类似 let userData: [String: Any] = [ "first name" : firstName, "dateCreated" : FieldValue.serverTimeStamp, etc?? =
    猜你喜欢
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多