У меня есть словарь, который [String: Bookmark]
, но созданный, он сохраняется как Timestamp
, и декодер выдает ошибку при попытке разобраться в Date
***Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «Неверный тип в записи JSON (__NSDate)»
struct Bookmark: Decodable {
let messageId: String
let messageCreatedAt: Date
}
JSONDecoder().decode([String: Bookmark].self, data: data)
Есть ли еще способ заставить протокол Swift Decodable
работать с Firestore?Временные метки?
Редактировать:
Если я напечатаю [String: Any]
, а затем попробую декодировать в консоли, вот так:
▿ 1 : 2 elements
- key : "messageCreatedAt"
- value : 2018-11-27 20:59:11 +0000
po valueDict["messageCreatedAt"] as? Date
Я получу
▿ Optional<Date>
▿ some : 2018-11-27 20:59:11 +0000
- timeIntervalSinceReferenceDate : 565045151.531769
Значит, в Decodable
должно быть что-то, что не в состоянии идентифицировать и проанализировать это?
Редактировать:
JSON равно
{
"messageId": "abc123",
"messageCreatedAt": "2018-11-27 20:59:11 +0000"
}