多个节点上添加,删除的Firebase事务

时间:2017-08-15 08:33:53

标签: android firebase firebase-realtime-database transactions

我有Firebase结构,其中包含Android中的用户和群组。这是一对多关系。

Firebase Structure

当我在组节点中添加任何用户时,我还在用户节点中添加了组,但没有使用任何类型的事务机制。

现在我需要执行删除组案例,它将删除组节点以及每个用户加入的用户节点内的组属性。在这种情况下必须有一个交易。到目前为止,我已经处理了依赖于相同节点但不依赖于不同节点的事务代码。

我需要知道如何在多个节点上添加和删除时实现事务,或者是否有更好的方法来实现它。

1 个答案:

答案 0 :(得分:3)

Firebase数据库事务在单个节点上运行。因此,如果您想使用事务,则必须将其移至整个数据库。这肯定会扼杀你的应用程序的任何可扩展性,所以这不是一个好主意。

而是使用multi-location update通过一次调用数据库来删除受影响的节点:

ToList()

现在整个操作将成功或失败,无需交易。