Как заполнить счетчик результатом запроса Firestore?

#java #android #firebase #google-cloud-firestore #spinner

#java #Android #firebase #google-облако-firestore #счетчик

Вопрос:

Я создаю spinner , в котором будет отображаться имя объекта. Имена объектов хранятся в моей базе данных Firestore следующим образом:

 subjects (collection)
|
|--- SUB01 (document)
|    |
|    |--- name : "Android"
|
|--- SUB02
|    |
|    |--- name : "Java"
  

Я мог бы получить результат в RecyclerView , но не смог помочь себе сделать это для счетчика.

Ответ №1:

Чтобы решить эту проблему, пожалуйста, используйте следующие строки кода:

 FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference subjectsRef = rootRef.collection("subjects");
Spinner spinner = (Spinner) findViewById(R.id.spinner);
List<String> subjects = new ArrayList<>();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, subjects);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
subjectsRefRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {
                String subject = document.getString("name");
                subjects.add(subject);
            }
            adapter.notifyDataSetChanged();
        }
    }
});
  

Результатом будет счетчик, который будет содержать 2 элемента:

 Android
Java
  

Комментарии:

1. Сработало как по волшебству. Большое вам спасибо.

2. Идеальный ответ. Спасибо