У меня есть своя модель в swift, и у нее есть свойство типа DocumentReference
Я получаю некоторые данные из облачной функции и затем пытаюсь декодировать ее обратно в мою модель.
DocumentReference
не соответствует Decodable сам по себе, поэтому я пытаюсь написать для него расширение.
Я не могу заставить его работать, так как я получаю эту ошибку:
Требование инициализатора 'init (from :)' может быть удовлетворено только 'обязательным' инициализатором в определении не финального класса 'DocumentReference'
Есть идеи, как заставить эту работу работать?
Мое расширение:
import Firebase
extension DocumentReference: Decodable {
public convenience init(from decoder: Decoder) throws {
//
}
}
Существующая модель:
struct Notification: Identifiable, CollectionProtocol, DocumentProtocol {
var id = UUID()
var documentReference: DocumentReference
var receiverID: String
var type: String
var createdAt: Date
var requestReference: DocumentReference?
var request: Request?
init(document: DocumentSnapshot) {
self.documentReference = document.reference
self.requestReference = document["requestReference"] as? DocumentReference ?? Firestore.firestore().document("")
self.receiverID = document["receiverID"] as? String ?? ""
self.type = document["type"] as? String ?? ""
self.createdAt = (document["createdAt"] as? Timestamp)?.dateValue() ?? Date()
}
}