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)
Что я хочу , так это печатать имя ребенка только с первого раза, почему это дает мне ноль?