【发布时间】:2017-11-02 04:32:51
【问题描述】:
我正在尝试使用 TableView 更改 Firebase 中的值。
这是 didSelectRowAt 中的 Swift 代码。
if let result = snapshot.children.allObjects as? [DataSnapshot] {
for child in result {
let nameDB = child.childSnapshot(forPath: "contactName").value! as! String
if nameDB == receiverName {
let autoID = child.key as String
if receiverAmount.characters.contains("-") {
self.dbRef.child("user/contacts/\(autoID)/borrowAmount").setValue("")
self.dbRef.child("user/contacts/\(autoID)/borrowDueDate").setValue("")
}
else {
self.dbRef.child("user/contacts/\(autoID)/lendAmount").setValue("")
self.dbRef.child("user/contacts/\(autoID)/lendDueDate").setValue("2099-12-31")
}
但是当我的应用程序运行时,值不稳定。
原始值和新值不断变化,然后我的应用程序就停止了。
有解决这个问题的想法吗...?
谢谢!!
【问题讨论】:
-
您只想更新单个孩子的值和该受尊敬孩子的单个值?是吗?
-
@iOSGeek 是的......
-
你有数据库中尊重价值路径的所有细节吗?像要在此 for 循环之前更新的子 ID、子名称、值名称吗?或者您从 For 循环中获取这些详细信息?
-
当您使用 tableView 时,我确信即使您不使用 for 循环,您也需要 al 值?而是在 didselectAction 上使用 for 循环,只需通过创建不使用 for 循环的引用来直接执行值更新
-
@iOSGeek 感谢您的回复!现在我明白了你所说的......为什么我使用 for 循环是在 Firebase 中,我有多个值,每个值里面都有我想要更新的内容。我的逻辑是:选择其中一个 tableView -> 从 tableView 中获取名称 -> 使用 for 循环在 Firebase 中匹配名称 -> 然后使用详细信息更新值我应该更新我的 Firebase JSON 以获得更清晰...?