onAppear swift возвращает nil перед функцией извлечения из базы данных

то, что я пытаюсь сделать, это получить детей, принадлежащих определенному родительскому идентификатору, и это следует сделать.

посмотрите на код ниже

      @Published var parentChildrenList:[Child] = []
func getParentChildren(){
        let db = Firestore.firestore()
        db.collection("Child").whereField("ParentID1", isEqualTo: "Dcjn3gomnde4G7POpDnlqKPHFZQ2").getDocuments
      { snapshot, error in 

            // Check for errors
            if error == nil {
                // No errors

                if let snapshot = snapshot {



                        self.parentChildrenList = snapshot.documents.map { d in
                          let Parentchildren = Child(
                                id: d.documentID,
                                email:d["Email"]as? String ?? "",
                                name: d["name"]as? String ?? "",
                                ParentID1: d["ParentID1"]as? String ?? "",
                                ParentID2: d["ParentID2"]as? String ?? ""
                            )
                  print(Parentchildren.name)
                  return Parentchildren
                        }
                }
            }
            else {
                //error
            }
        print(self.parentChildrenList.count)
        }
    }// end getParentChildren

Вот код просмотра для SwiftUI, который я хочу вызвать getParentChildren()в onAppear

      .onAppear {
            viewModel.getParentChildren()
            print("\(viewModel.parentChildrenList.first?.name)" + "hi")
        }

Проблема в том, что сначала он печатает nilhi для файла . print("\(viewModel.parentChildrenList.first?.name)" + "hi")

Затем напечатайте имя ребенка, которое является Aseeloo из print(Parentchildren.name)

После этого он печатает количество массивов -> print(self.parentChildrenList.count)

Что я хочу , так это печатать имя ребенка только с первого раза, почему это дает мне ноль?

0 ответов

Другие вопросы по тегам