gpt4 book ai didi

arrays - 多个 Firestore 快照相互覆盖

转载 作者:行者123 更新时间:2023-11-30 10:44:13 25 4
gpt4 key购买 nike

我正在检查 Firestore 数组是否包含来自另一个数组(不是 Firestore 数组)的字符串。然后我将数据放入字典中

 func loadData(){
for i in 0..<testTable.count {

let db = Firestore.firestore()

db.collection("Ingredients").whereField("compName", arrayContains: testTable[i] ).getDocuments(){
querySnapshot, error in
if let error = error {
print("\(error.localizedDescription)")
}else if let querySnapshot = querySnapshot {
if (querySnapshot.isEmpty == false){

self.ingredientsArray = querySnapshot.documents.compactMap({Ingredients(dictionary: $0.data())})

print("\(self.ingredientsArray)")
DispatchQueue.main.async {
self.tableView.reloadData()

}
}
}

}
}
}

问题是字典按预期仅保留最后一个快照的数据。有没有办法保留所有快照中的所有数据?

最佳答案

当您重新分配数组self.ingredientsArray时会发生这种情况,因此替换它

 self.ingredientsArray = querySnapshot.documents.compactMap({Ingredients(dictionary: $0.data())})

let res = querySnapshot.documents.compactMap({Ingredients(dictionary: $0.data())})
self.ingredientsArray.append(contentsOf:res)

关于arrays - 多个 Firestore 快照相互覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56119530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com