FirebaseFireStore возвращает true для isSuccess после того, как я пытаюсь удалить уже созданный документ - PullRequest
0 голосов
/ 22 ноября 2018

Я случайно обнаружил это после того, как протестировал свое приложение.У меня есть recycleListView, который содержит вид карты, у каждого из которых есть документ из магазина.После случайного удаления какого-либо документа он исчезает из FirebaseFirestore, но когда я пытаюсь удалить его снова, он по-прежнему возвращает isSuccess () true.Может кто-нибудь объяснить мне, почему это происходит?

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

FirebaseFirestore.getInstance().collection("Collection_A")
    .document(list[position].id).delete().apply {
     addOnCompleteListener { task ->
     if (task.isComplete){
         Log.d("Complete", "Task complete")
     }
     if (task.isSuccessful) {
         Log.d("Complete", "Task complete and Success")
     } else {
         Log.d("Complete", "Task complete but not success")
     }
}
addOnCanceledListener {
    Log.d("Cancel", "Delete data canceled")
}
addOnFailureListener { ex ->
    ex.printStackTrace()
}

Моя структура документа

Collection_A

  • Документ ... [Идентификатор документа генерируется случайным образом]

    • имя [поле]: строка

    • count [field]: Int

    • dateInWeek [field]: Map

1 Ответ

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

Я только что быстро протестировал, и кажется, что в JavaScript удаление также считается успешным, даже если документ больше не существует.Похоже, это работает так, как ожидалось, и вам, вероятно, следует пометить его как «задача выполнена успешно, когда документ больше не существует в базе данных».Задача не будет выполнена, только если у вас нет разрешения на удаление документа (независимо от того, существует он или нет).

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

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

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