【发布时间】:2020-07-16 04:48:35
【问题描述】:
在 Swift 中工作..
我正在尝试调用 .setData(from: ) 将 Codable 结构写入 Cloud Firestore 数据库中的文档,如 Firebase 文档中所述:
https://firebase.google.com/docs/firestore/manage-data/add-data#custom_objects
但是,我收到错误消息:“参数标签 '(from:)' 与任何可用的重载都不匹配”
奇怪的是我曾经能够在模拟器上构建和运行一次,并成功发布了一个文档,但现在显然编译器调用了这个错误并导致构建失败。相关代码如下:
导致构建失败的行:
do {
try collectionRef.document(lensSet.id.uuidString).setData(from: lensSet)
} catch let error {
print(error)
}
可编码结构:
struct LensSet: Codable, Identifiable {
var id: UUID
// Coding KEYS
private enum CodingKeys: String, CodingKey {
case id
}
}
看起来他们在文档中调用的函数可能不存在?任何帮助表示赞赏!
【问题讨论】:
-
看起来好像
setData(from:)已被弃用,但他们忘记更新解释为什么它曾经有效而现在无效的文档。我也没有在当前 SDK 的任何地方看到setData(from:)方法。 -
要回答您关于如何修复它的问题,您必须为
setData()方法提供一个[String: Any]字典,您可以从结构中执行该字典(通过返回此字典的结构中的计算属性) 或手动(使用结构的现有属性)。 -
好的,谢谢!我想这太好了,难以置信!当它起作用时,实际上就在今天早上,所以它仍然有点神秘,但它似乎确实从文档中消失了..
-
好吧,他们今天没有发布更新,所以不太可能出现这种情况。它仍在您提供的链接中的文档中。
-
很奇怪! Firebase 添加和扩展以使制作客户对象更容易,但忘了告诉我们。查看我对这个问题的回答
标签: ios swift firebase google-cloud-firestore cloud