в моем приложении есть кнопка, которая может включаться и выключаться, но когда она нажата несколькими пользователями, возникает ошибка, например «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)
}
}
}
это мой код, какие проблемы с моим кодом, и как я могу это исправить?заранее спасибо.