FirebaseDatabase根引用在事务中为空

我正在尝试执行Firebase事务,以便更改我的Firebase数据库中两个位置的值,但交易处理的MutableData为空。

是否禁止在数据库根上运行事务? 我是否必须运行多个链接的交易才能完成此操作?

val ref = FirebaseDatabase .getInstance() .getReference("/") ref.runTransaction(object : Transaction.Handler { override fun doTransaction(currentData: MutableData): Transaction.Result { println( currentData) // { key = <none>, value = null } if (currentData.value == null){ return Transaction.success(currentData) } currentData.child("users/{userID}/someVal/").setValue(X) currentData.child("items/{itemID}/someVal/").setValue(Y) return Transaction.success(currentData) } }) 

您问: 是否禁止在数据库根目录上运行事务? 我没有在任何地方发现它,但答案似乎是。

当我用添加了调试日志语句的代码(Java代替Kotlin)运行代码时,会重复调用doTransaction()方法,并且onComplete()报告错误事务有太多的重试次数

当我将事务位置更改为root某个子项时,事务成功完成。