Не могу получить правильный идентификатор документа в Firestore - PullRequest
0 голосов
/ 15 сентября 2018

В своей работе TimeForm я добавляю некоторые данные в Firestore, но не добавляю их в конкретные документы, потому что мне нужно прочитать их все, используя .addSnapshotListener Но мне нужно удалить некоторые документы.Например, вот мои документы в коллекции понедельника:

enter image description here

Но когда я попытался удалить их, сделав это:

db.collection("monday").document()
    .delete()
    .addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            Log.d(TAG, "DocumentSnapshot successfully deleted!");
        }
    })
    .addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.w(TAG, "Error deleting document", e);
        }
    });

Это не работает, потому что я не установил название документа.Затем я спросил, как получить идентификатор документа (вот страница: Удалить данные из хранилища ), он не отправил правильный идентификатор документа.Я добавил тестовую кнопку, и когда я щелкнул по ней, она отображала тост с идентификатором документа, но каждый раз, когда я нажимал на нее, он отображал случайные идентификаторы, и ни один из них не был правильным.Как я могу удалить эти документы один за другим за один раз?

1 Ответ

0 голосов
/ 16 сентября 2018

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

Это происходит потому, что вы ничего не передаете методу document().Согласно официальной документации метода CollectionReference document () :

Возвращает ссылку DocumentReference, указывающую на новый документ с автоматически сгенерированным идентификатором в этой коллекции.

Таким образом, каждый раз, когда вы вызываете метод document() без передачи аргумента, вы получаете новый auto-generated ID, который никогда не будет совпадать с одним из существующих.

Чтобы удалить конкретный документ, необходимо передать конкретный идентификатор документа, который вы хотите удалить, в метод document().Это может выглядеть примерно так:

db.collection("monday").document("2wZg ... GmfS").delete().addOnSuccessListener(/* ... */);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...