首页 > 解决方案 > 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)

标签: swiftfirebasefirebase-realtime-database

解决方案


您可能正在使用DatabaseReference.observe然后更新其完成处理程序中的值。每次DatabaseReference.observe有问题的值更新时都会调用。因此,如果您正在观察更改,然后更新相同引用的值,它将无限循环。

如果您想观察该值一次,然后在完成处理程序中更新相同的值,请DatabaseReference.observeSingleEvent改用。这将防止完成处理程序被调用第二、第三、第四次,直到无限次。


推荐阅读