Я пытаюсь загрузить информацию из документа Firebase Firestore, который затем добавляется в массив в режиме реального времени. Каждый раз, когда я добавляю документ, удаляю или редактирую документ, я бы хотел, чтобы приложение обновляло и синхронизировало массив в соответствии с данными. Мне удалось получить данные с помощью следующего кода:
database.collection("_Products").getDocuments(completion: { (snapshot, error) in
if error != nil {
print(error as Any)
}else{
for document in (snapshot?.documents)! {
let Name = document.data()["Item Name"] as! String
let Price = document.data()["Item Price"] as! String
let Number = document.data()["Item Number"] as! String
let Brand = document.data()["Item Brand"] as! String
let Quantity = document.data()["Quantity"] as! String
let Category = document.data()["Item Category"] as! String
DispatchQueue.main.async {
if instoreCheckOutArray.contains(where: {$0.Number == Number && $0.Brand == Brand}){
return
}else{
instoreCheckOutArray.append(checkOutArrayInfo(Brand: Brand, Name: Name, Number: Number, Price: Price, Quantity: Quantity, Category: Category))
self.searchForCoupon()
}
}
}
}
})
Затем я использую следующий код, чтобы каждую секунду запускать функцию для извлечения данных из базы данных:
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateCart), userInfo: nil, repeats: true)
Выполнение предыдущего кода прекрасно доставляет мне новые данные, но я не могу заставить приложение обновить существующий массив, чтобы он соответствовал базе данных, и когда я удаляю документ из базы данных, он остается в массиве.
Спасибо заранее.