2017-08-15 10 views
0

Androidにユーザとグループを含むFirebase構造を持っています。それは多対多の関係です。複数のノードでの追加、削除のFirebaseトランザクション

Firebase Structure

私はグループノード内の任意のユーザーを追加していたとき、私はまた、ユーザノードではなく、取引メカニズムのいずれかの種類を使用せずにグループを追加します。

ここで、グループノードと、各ユーザーが参加したユーザーノード内のグループプロパティを削除する削除グループのケースを実行する必要があります。このシナリオではトランザクションが必要です。これまでは、同じノードに依存するトランザクションコードを処理しましたが、別のノードには依存しません。

複数のノードで追加や削除を行う場合にトランザクションを実装する方法を知っておく必要があります。

答えて

1

Firebaseデータベーストランザクションは単一ノード上で動作します。したがって、トランザクションを使用する場合は、トランザクション全体をデータベース全体で作業する必要があります。それはあなたのアプリのスケーラビリティをほとんど無意味にするので、良い考えではありません。今、この操作全体がトランザクションを必要とせずに、成功するか失敗するか

Map updates = new HashMap(); 
updates.put("https://stackoverflow.com/users/-Kr....", null); 
updates.put("/groups/-Kr.../users/-Kr...", null); 
ref.updateChildren(updates); 

代わりに、データベースへの1回の呼び出しで影響を受けたノードを削除するためにmulti-location updateを使用しています。

+0

あなたはチャンピオンです。私はこの問題で長年検索したにもかかわらず、updateChildernのようなものがあるのを知らなかった。 – topgun263

関連する問題