Firebase Firestore是否可以保存一个字典,其中的条目属于带有枚举的自定义类型



在Firestore中存储自定义类型时,我得到的消息是:由于未捕获的异常"FIRInvalidArgumentException"而终止应用程序,原因是:"不支持的类型:__SwiftValue。

struct Reply: Codable {
var acceptance: Acceptance
var date: Date
enum CodingKeys: String, CodingKey {
case acceptance
case date
}
}
enum Acceptance: String, Codable {
case Pending = "Pending"
case Accepted = "Accepted"
case Rejected = "Rejected"
}

这些类型用于创建形式的字典

var replies =  [String: Reply]()

其中CCD_ 1密钥用于将CCD_ 2与用户CCD_。

但是,当我尝试将replies变量存储为Firestore文档的字段时,会出现异常。

db.collection("SomeCollection").addDocument(data: ["Replies": replies]) {...}

为什么?

谢谢!

当前Firebase Firestore仅支持特定的数据类型,如:

  • 数组
  • 布尔值
  • 浮点数字

您可以在此链接上查找更多类型。话虽如此,Reply是一种自定义类型,不幸的是Firebase不会接受它。我的建议是分解您的自定义类型,直到您可以使用Swift类型(Array、String、Int(,并通过使用以前保存到String1的Strings构建Acceptance来重建Reply

根据Miguel Tepale的回答,检查是否为零值。如果您的字典或正在分配的数据具有null值,则可能会出现此问题,因为它无法决定其类型。

相关内容

最新更新