在 Swift 3 中将数据添加到 Firebase 而不是 SetValue

Posted

技术标签:

【中文标题】在 Swift 3 中将数据添加到 Firebase 而不是 SetValue【英文标题】:Add data to Firebase instead of SetValue, in Swift 3 【发布时间】:2016-10-25 11:40:51 【问题描述】:

我想在当前数据之外添加数据。 我知道的唯一方法是保存当前数据,将其添加到我的应用程序中,然后将其写入 Firebase。但是如果 2 个人在准确的时间做这件事呢?第一个这样做的人 - 将被禁止。

那么您知道将数据添加到 Firebase 而不是 SetValue 的其他方法吗?

【问题讨论】:

【参考方案1】:

为了解决这种同时更新的值,使用了 runTransactionBlocks

像这个函数,假设这个引用是noOfPost,我想做的就是将值增加1

如果两个用户同时增加这个参考值,这个请求将被上传到单独的线程中,并且会覆盖在你的数据库中同时更新的可能性:-

func updateTotalNoOfPost(completionBlock : @escaping (() -> Void))


    let prntRef = FIRDatabase.database().reference().child("_yourNodeRef")

    prntRef.runTransactionBlock( (returned_Data) -> FIRTransactionResult in
        if let totalPost = returned_Data.value as? Int
            print(totalPost)
            returned_Data.value = totalPost+1 //Your updated or appended value, or whatever you wanna do with this

            return FIRTransactionResult.success(withValue: returned_Data)
        else

            return FIRTransactionResult.success(withValue: returned_Data)

        
        , andCompletionBlock: (error,completion,snap) in

            print(error?.localizedDescription)
            print(completion)
            print(snap)
            if !completion 

                print("The value wasn't able to Update")
            else

                completionBlock()
            
    )


调用函数:-

 updateTotalNoOfPost
      print("The value was updated")
    

【讨论】:

如何调用函数?

以上是关于在 Swift 3 中将数据添加到 Firebase 而不是 SetValue的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 3 中将图像添加到 UIAlertbox?

如何在 Swift 3 中将 NSConstraints 添加到 UITextView

如何在 swift 3 中将滑动手势添加到 AVPlayer

如何在 swift 3 中将 MKPolylines 添加到 MKSnapShotter?

在 Swift 3.1 中将自己的对象数组添加到 UserDefaults 时出错

Core Data 在 Swift 中将数据添加到关系中