Добавление нескольких записей в Firebase одновременно - PullRequest
0 голосов
/ 02 ноября 2018

Я должен создать заказ, используя базу данных Firebase.

Мне нужно выполнить следующие шаги в общей операции

1- Update the balance of user 
2- Create a transaction with payment data
3- Create a record of order in orders listing
4- Update entries of local store.

Теперь все эти детали должны быть выполнены вместе. Каков наилучший подход для этого в firebase. либо

ref1.setValue(
ref2.setValue(
ref3.setValue(
ref4.setValue(

или через транзакции, и если да, то как?

1 Ответ

0 голосов
/ 03 ноября 2018

Согласно вашему комментарию:

Участники не являются детьми пользователей, каждый из другого списка. пользователи, заказы, транзакции и магазины

Я рекомендую вам выполнить одновременное обновление нескольких местоположений в дереве 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.

Одновременные обновления, выполненные таким способом, являются атомарными: либо все обновления успешны, либо все обновления завершаются неудачей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...