Согласно вашему комментарию:
Участники не являются детьми пользователей, каждый из другого списка. пользователи, заказы, транзакции и магазины
Я рекомендую вам выполнить одновременное обновление нескольких местоположений в дереве JSON с помощью одного вызова метода updateChildren () DatabaseReference.
Примером официальной документации будет:
private void writeNewPost(String userId, String username, String title, String body) {
// Create new post at /user-posts/$userid/$postid and at
// /posts/$postid simultaneously
String key = mDatabase.child("posts").push().getKey();
Post post = new Post(userId, username, title, body);
Map<String, Object> postValues = post.toMap();
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put("/posts/" + key, postValues);
childUpdates.put("/user-posts/" + userId + "/" + key, postValues);
mDatabase.updateChildren(childUpdates);
}
В этом примере используется push()
для создания сообщения в узле, содержащего сообщения для всех пользователей в /posts/$postid
, и одновременного получения ключа с помощью getKey()
. Затем ключ можно использовать для создания второй записи в сообщениях пользователя по адресу /user-posts/$userid/$postid
.
Одновременные обновления, выполненные таким способом, являются атомарными: либо все обновления успешны, либо все обновления завершаются неудачей.