Firestore загружает DocumentID в активность

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

Это делается для того, чтобы иметь возможность щелкнуть их и загрузить атрибуты внутри них.

Мой первоначальный вопрос: как я могу получить идентификатор?

Я пробовал это, но не работал

db.collection("Kit List").document().get().addOnSuccessListener { snapshot ->

        snapshot.id

        firstKitList.add(snapshot.toString()).toString()

       mainListViewAdapter.notifyDataSetChanged()
    }

Спасибо


person Kotlinboiya    schedule 13.02.2018    source источник
comment
stackoverflow.com/questions/46995080/   -  person Gowthaman M    schedule 13.02.2018
comment
stackoverflow.com/questions/47437291/   -  person Gowthaman M    schedule 13.02.2018
comment
Я думаю, что первый слишком избыточен для того, что мне нужно. Кажется, я не могу извлечь то, что мне действительно нужно. Вы не возражаете против дополнительной помощи? Спасибо   -  person Kotlinboiya    schedule 13.02.2018
comment
Пожалуйста, добавьте структуру вашей базы данных и сообщите нам, какие точные данные вы хотите получить.   -  person Alex Mamo    schedule 13.02.2018


Ответы (1)


Предполагая, что ваша база данных выглядит примерно так:

Firestore-root
     |
     --- Kit List (collection)
           |
           --- docId1 (document)
           |
           --- docId2 (document)
           |
           --- //

Чтобы получить ключ документов, используйте следующий код:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference kitListRef = rootRef.collection("Kit List");
kitListRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (DocumentSnapshot document : task.getResult()) {
                String key = document.getId();
                Log.d("TAG", key);
            }
        } else {
            Log.d("TAG", "Error getting documents: ", task.getException());
        }
    }
});

Вывод будет:

docId1
docId2
person Alex Mamo    schedule 13.02.2018