Я использую firestore для своего приложения, внутри каждого документа у меня есть массив словарей.Я хочу обновить определенное словарное поле из массива.Сверяясь с индексом, я не могу обновить определенное поле словаря.Кто-то, пожалуйста, пролите немного света.
Добавляю код ниже, где добавляю каждый словарь в массив словаря.
Заранее спасибо.
let patientID = UserDefaults.standard.string(forKey:"patient_id")
db.whereField("patient_id", isEqualTo: patientID as Any).getDocuments { (snapShot, err) in
if let err = err{
print(err.localizedDescription)
}else if snapShot!.documents.count != 1 {
print("Perhaps this is an error for you?")
self.showAlert(title: "Failure", msg: "Bad response from firestore")
self.HUD.hide(true)
}else{
let document = snapShot!.documents.first
let dictionaries = snapShot!.documents.compactMap({$0.data()})
for item in dictionaries{
let patientCase = item["patient_case"]
print(patientCase!)
for eachItem in (patientCase as? NSArray)!{
caseDictionary.append(eachItem as! Dictionary)
}
}
print(caseDictionary)
let uploadData = ["patient_case":caseDictionary]
document?.reference.setData(uploadData, merge: true, completion: { (error) in
if error == nil {
print("Data added successfully")
self.HUD.hide(true)
// self.delegate!.isCreatedSuccessfully(success: true)
for controller in self.navigationController!.viewControllers as Array {
if controller.isKind(of: ParentController.self) {
let vc = self.navigationController!.popToViewController(controller, animated: true)
// vc.type = ""
break
}
}
}else{
print("Data saving error")
self.showAlert(title: "Failure", msg: "Bad response from firestore")
self.HUD.hide(true)
}
})
}