Firebase增量值会运行一段时间然后中断

时间:2016-10-03 19:36:41

标签: ios swift firebase swift2 firebase-realtime-database

我有一个应用程序来购买/出售旧书,每次一本标记为已售出的书我都有这个快速代码来增加Firebase实时数据库中已售书籍的数量。

    bookRef.child(book.bookKey!).child("Sold").setValue(true)
    statisticsRef.child("SoldBooksNumber").observeSingleEventOfType(FIRDataEventType.Value ,withBlock: { (snap) in
        let soldBooksNumber = (snap.value?.intValue)! + 1
        statisticsRef.child("SoldBooksNumber").setValue("\(soldBooksNumber)")
    })

bookRef和staticsRef是对RTDB中两个节点的两个引用。

我遇到的问题:这段代码工作正常一段时间后,一段时间后价值开始下降,让我们说59到22!我在想是不是因为两个人在同一时间更新,那么它将是60而不是61左右,但不是从59到22!

我想知道是否有人能猜出导致问题的原因,

提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试: -

statisticsRef.runTransactionBlock({ (snap) -> FIRTransactionResult in
    if let valueToBeAppended = snap.value as? Int{
        snap.value = valueToBeAppended + 1
        return FIRTransactionResult.successWithValue(snap)
      }else{
        return FIRTransactionResult.successWithValue(snap)
       }
    }, andCompletionBlock: {(error,completion,snap) in
            print(error?.localizedDescription)
            print(completion)
            print(snap)

              if !completion {
                  print("The value wasn't able to Update")
                 }else{
                  print("Value updated")
                    }
           })