Swift - Firebase交易未在用户注销前完成?

时间:2018-04-04 14:59:07

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

在我的iOS应用中,我正在使用Firebase Transactions根据用户生成的数据更新记分板,以避免并发更新时出错。我在三点保存数据:

  • 当用户按下“退出”
  • 当用户强制退出应用程序时(由于超时问题而无法正常工作)
  • 在应用程序运行时更改日期

以下是交易代码:

func saveDataToFirebase(signUserOut: Bool)
{
    let countyRef = Database.database().reference().child("countyleaderboard")

    countyRef.child(self.userCounty).runTransactionBlock({ (currentData: MutableData) in
        var value = currentData.value as? Float

        if value == nil
        {
            value = Float(0.00)
        }

        currentData.value = value! + self.currentSessionAlt
        return TransactionResult.success(withValue: currentData)
    }, andCompletionBlock: {
        error, commited, snap in

        if commited && signUserOut
        {
            do
            {
                print("transaction complete")
                try Auth.auth().signOut()
            }
            catch let logoutError
            {
                print(logoutError)
            }
        }
    })
}

代码到达注销方法,但数据库未更新。我单独运行代码,不包括用户注销,事务处理完成。

为什么在签署用户之前交易实际上没有完成?有没有办法解决这个问题?

0 个答案:

没有答案