Как я могу установить транзакцию Firebase в Swift4 - PullRequest
0 голосов
/ 16 февраля 2019

в моем приложении есть кнопка, которая может включаться и выключаться, но когда она нажата несколькими пользователями, возникает ошибка, например «true false true false false false false», она должна быть в порядке, но как false 3 раза из-заодновременный ввод, для него я кодировал, но он не работает

func stateTransaction() {

let ref = Database.database().reference().child("Button")

        ref.runTransactionBlock({ (currentData: MutableData) -> TransactionResult in

            ref.queryLimited(toLast: 1).observeSingleEvent(of: .childAdded) { (snapshot) in

                let state = snapshot.value as! Bool

                if state == false {

                    ref.childByAutoId().setValue(true)
                    ref.queryLimited(toLast: 1).observeSingleEvent(of: .childAdded, with: { (snapshot) in
                        print(snapshot.value as! Bool)
                        currentData.value = state
                    })

                } else {

                    ref.childByAutoId().setValue(false)
                    ref.queryLimited(toLast: 1).observeSingleEvent(of: .childAdded, with: { (snapshot) in
                        print(snapshot.value as! Bool)
                        currentData.value = state
                    })
                }

                }

                return TransactionResult.success(withValue: currentData)

        }) { (error, committed, snapshot) in
            if let error = error {
                print(error.localizedDescription)
            }
        }

}

это мой код, какие проблемы с моим кодом, и как я могу это исправить?заранее спасибо.

...