Функция удаления () FirebaseFirestore при вызове от двух клиентов одновременно дает успех обоим клиентам - PullRequest
0 голосов
/ 30 сентября 2019

В моем случае документ (скажем, C) удаляется из коллекции, скажем, PQR.

Я вызываю следующий фрагмент кода в 2 клиентах A и B. Одновременно.

 db.collection("PQR").document("C").delete().addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {

        }
    });

onSuccess() на обоих клиентах вызывается после удаления.

Как это возможно, поскольку, по моему мнению, только один из клиентов должен иметь возможность удалить документ и вызывать onSuccess либо клиента A, либо клиента B.

Пожалуйста, помогите.

1 Ответ

1 голос
/ 30 сентября 2019

Слушатель onSuccess вызывается для операции, если был достигнут ожидаемый результат операции, что в случае delete() означает, что onSuccess вызывается, если документ не существует после операции. Для этого не имеет значения, если вызов активно удалял документ или документ не существовал до вызова.

Если вы хотите определить, удаляет ли конкретный вызов документ, вам понадобится использовать транзакцию для операции.

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