swift - Firebase 'setValue' 函数重复并且不会停止 Swift
问题描述
我正在向我的数据库发送整数,应该调用一次,但正在更新 100 次。数据库很快被填满,仿佛有一个无限循环。
如何调用setValue
函数来上传整数而不在循环中重复?有不同的方法吗?
let newNumber = self.OldPoints + 20;
print("\(String(newNumber))")
self.databaseRefer.child("Users").child(Name).child("PointsAndConesInfo").child("CurrentPoints").childByAutoId().setValue(newNumber)
解决方案
您可能正在使用DatabaseReference.observe
然后更新其完成处理程序中的值。每次DatabaseReference.observe
有问题的值更新时都会调用。因此,如果您正在观察更改,然后更新相同引用的值,它将无限循环。
如果您想观察该值一次,然后在完成处理程序中更新相同的值,请DatabaseReference.observeSingleEvent
改用。这将防止完成处理程序被调用第二、第三、第四次,直到无限次。
推荐阅读
- java - 比较日期列表并找出最接近分钟的日期,然后选择它并将其四舍五入到最接近的分钟
- javascript - 在按钮上使用 javascript 在 chrome 浏览器中单击 IE 扩展(选项卡)中的打开链接
- vb.net - 本网站未在 Web 浏览器 vb.net 中登录
- python - 将图像转换为 numpy 数组,然后保存为 txt 文件,然后再次将 .txt 转换为图像
- sql - SQL查询优化更新
- xml - Jackson XML 解析 - 两种可能的数据类型(Android、Kotlin)
- swift - @ObservedObject 与属性初始化器 - SwiftUI
- javascript - 在 DateRangePicker 中将日期格式转换为 'YYYY-MM-DD'
- python - 我在 Rest Api 中创建了登录身份验证
- javascript - Jquery Uncaught TypeError:无法读取未定义的属性'0'