# #swift #google-cloud-firestore #collections #nested #codable
Вопрос:
Я пытаюсь понять, как работать с Firestore, и застрял с вложенными коллекциями. Приведенный ниже пример хорошо работает, но не получает данные из вложенной коллекции. Вопрос в том, как получить данные из вложенной коллекции в Firestore для каждого документа в основной коллекции и сохранить их в переменных основных коллекциях? Чувствую, что это легко, но я уже завязал себя в узлы
Данные:
struct mainCollection: Hashable, Codable {
var title: String
var nestedCollection: [nestedCollection]
}
struct nestedCollection: Hashable, Codable {
var description: String
}
class ViewModel: ObservableObject {
@Published var mainCollections = [mainCollection]()
private var db = Firestore.firestore()
func fetch() {
db.collection("mainCollection").addSnapshotListener { (querySnapshot, error) in
guard let documents = querySnapshot?.documents else {
return
}
self.mainCollections = documents.compactMap { (queryDocumentSnapshot) -> mainCollection? in
return try? queryDocumentSnapshot.data(as: mainCollection.self)
}
}
}
Комментарии:
1. Здесь и там есть много примеров. Помогать себе.
2. Я буду предлагать вместо использования вложенных коллекций — использовать массив объектов. Для вложенных коллекций — вам нужно прочитать все коллекции отдельно.