【问题标题】:Swift Firebase changing value is unstableSwift Firebase 更改值不稳定
【发布时间】: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 以获得更清晰...?

标签: ios swift firebase


【解决方案1】:

1) 当您使用 tableView 时,我确信即使您不使用 for 循环,您也需要 al 值?而是在 didselectAction 上使用 for 循环,只需通过创建不使用 for 循环的引用来直接执行值更新。

2)由于 for 循环条件,你得到不稳定的输出所以,在这里避免 for 循环并直接更新值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 2012-09-05
    • 1970-01-01
    相关资源
    最近更新 更多