Как получить идентификатор DocumentSnapshot в виде строки? - PullRequest
0 голосов
/ 28 февраля 2019

Как я могу получить идентификатор документа в Firestore?

final String PostKey = db.collection("Anuncio").document().getId();

Я пытаюсь таким образом, но он возвращает новый идентификатор.Как получить идентификатор документа, который уже завершен?

1 Ответ

0 голосов
/ 28 февраля 2019

Если вы не знаете идентификатор документа заранее, вы можете получить все документы в коллекции и распечатать идентификаторы:

db.collection("Anuncio")
        .get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    for (QueryDocumentSnapshot document : task.getResult()) {
                        Log.d(TAG, document.getId() + " => " + document.getData());
                    }
                } else {
                    Log.d(TAG, "Error getting documents: ", task.getException());
                }
            }
        });

Если вы заинтересованыв подмножестве документов вы можете добавить условие запроса для фильтрации документов:

db.collection("Anuncio")
        .whereEqualTo("some-field", "some-value")
        .get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    for (QueryDocumentSnapshot document : task.getResult()) {
                        Log.d(TAG, document.getId() + " => " + document.getData());
                    }
                } else {
                    Log.d(TAG, "Error getting documents: ", task.getException());
                }
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...