提问人:JOHNY 提问时间:11/6/2023 最后编辑:Frank van PuffelenJOHNY 更新时间:11/6/2023 访问量:46
将 Firestore 数据库中字段的 int 值递增 1
Increment the int value of a field by one in Firestore database
问:
我目前有这个代码:
let brandDocRef = self.database.collection("Companies").document("Nike")
brandDocRef.addSnapshotListener { [weak self] snapshot, error in
guard let data = snapshot?.data(), error == nil else {
return
}
if let clientsValue = data["Clients"] as? Int {
clientsValue = clientsValue + 1
let clientData: [String: Int] = [
"Clients": clientsValue
]
brandDocRef!.setData(brandData, merge: true) { error in
if let error = error { } else { }
}
此代码应该进入我的 firestore 数据库,获取“Nike”文档的“clients”字段中的值,然后将其递增 1,并更新文档中的值。但是由于它是一个 ,函数的值会发生变化,并且该函数会再次被调用。这创造了一个无限循环;它一遍又一遍地递增该值。如何避免这种循环?snapshotListener
clientsValue
答:
0赞
Frank van Puffelen
11/6/2023
#1
如果只想读取和递增一次值,请使用 getDocument
调用而不是 .这将只读取一次数据,因此不会有循环。addSnapshotListener
评论