Я новичок в Swift и пытаюсь внедрить метод generi c для извлечения данных из Firestore.
func fetch<T: Codable>(query: Query, completion:@escaping (Result<[T]?, Swift.Error>) -> Void) {
var dataArray = [T]()
query.addSnapshotListener { (querySnapshot, error) in
guard let snapshot = querySnapshot else {
print("Error fetching snapshots: \(error!)")
completion(.failure(error!))
return
}
if snapshot.isEmpty {
completion(.success(nil))
return
}
snapshot.documentChanges.forEach { change in
var data: T!
do {
data = try FirestoreDecoder().decode(T.self, from: change.document.data())
} catch let error {
completion(.failure(error))
return
}
if (change.type == .added) {
// print("New data: \(change.document.data())")
dataArray.append(data)
}
}
completion(.success(dataArray))
}
, но здесь я не знаю, как мне получить идентификатор документа от изменения .document.data (). Пожалуйста, помогите мне, если кто-нибудь знает. спасибо.