私がやろうとしているのは、特定の親 ID に属する子供を取得するgetParentChildren()
ことです。それを行う必要があります。
以下のコードを見てください
@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
getParentChildren()
onAppearで呼び出したいSwiftUIのビューコードは次のとおりです
.onAppear {
viewModel.getParentChildren()
print("\(viewModel.parentChildrenList.first?.name)" + "hi")
}
問題は、最初に nilhi を出力することです。 print("\(viewModel.parentChildrenList.first?.name)" + "hi")
次に、からのAseelooである子供の名前を出力しますprint(Parentchildren.name)
その後、配列の数を出力します-> print(self.parentChildrenList.count)
私が望むのは、最初から子の名前のみを出力することです.なぜそれは私に nil を与えるのですか?