I created a function to get data on firebase.
When the func ftechEventData is called the print returns the good data
class GroupeManager:ObservableObject{
@Published var events = [eventViewModel]()
@State var db = Firestore.firestore()
@State var user = Auth.auth().currentUser
func fetchEventData(group:groupeViewModel) {
print("featchingEventData")
if user != nil {
db.collection("events").whereField("group_id", isEqualTo: group.id).addSnapshotListener({(snapshot, err) in
guard let documents = snapshot?.documents else {
print("no docs returned")
return
}
var cont = -1
self.events = documents.map({docSnapshot -> eventViewModel in
cont += 1
let data = docSnapshot.data()
let docId = docSnapshot.documentID
let name = data["name"] as? String
let des = data["des"] as? String
let res = data["reservation"] as! Int
let cost = data["reservation"] as! Float
let isDate = data["isDate"] as! Bool
var date = data["date"] as? Date
let link = data["link"] as? String
let textColor = data["TextColor"] as! Bool
var res_users = data["res_users"] as? [String]
if res_users == nil{
res_users = [""]
}
if date == nil{
date = Date(timeIntervalSince1970: 135670000)
}
print("update")
return eventViewModel(id: docId, name: name!, description: des!, TextColor: textColor, reservation: res, reserved_user:res_users!, cost: cost, isDate: isDate, date: date! , link: link!, cont: cont)
})
print("events \(self.events)")
})
}
}
}
And form another script a create this init to call the func:
init(group group:groupVielModel) {
GroupeManager().fetchEventData(group: group)
}
And in the body when I write its return nothing:
LazyVStack {
ForEach(GroupeManager().events){event in
create_UI_of_event(event: event, cont: event.cont)
}
}
In the func create_UI_of_event there a print(event) it returns nothing.