【发布时间】:2020-03-10 23:24:30
【问题描述】:
我正在向我的数据库发送整数,应该调用 一次,但正在更新 100 次。数据库很快被填满,仿佛有一个无限循环。
如何调用setValue 函数来上传整数而不使其在循环中重复?有其他方法吗?
let newNumber = self.OldPoints + 20;
print("\(String(newNumber))")
self.databaseRefer.child("Users").child(Name).child("PointsAndConesInfo").child("CurrentPoints").childByAutoId().setValue(newNumber)
【问题讨论】:
-
你没有真正提供足够的信息让任何人帮助你。这里没有循环,甚至没有定义
databaseRefer。请参阅how to create a minimum, complete, reproducible example。如果可能,请确保以 JSON 形式包含数据库中的(最少)示例数据(您可以从控制台导出)。 -
我想这是在观察节点值变化的处理程序中,而不是观察一次。因此,您在观察处理程序中设置值,这将再次调用观察处理程序,这将再次设置值,这将再次调用观察处理程序,以此类推。你想使用
DatabaseReference.observeSingleEvent,而不是DatabaseReference.observe。 -
为什么每个单词都大写?
-
我认为@DavidChopin 有一个答案。但是,您的问题中没有足够的代码来复制该问题。例如何时/何处调用该代码?您在问题中的任何引用节点上都有观察者吗?请花点时间查看How to create a Minimal, Complete, and Verifiable example
标签: swift firebase firebase-realtime-database