Как добавить данные из firestore в мой счетчик - PullRequest
0 голосов
/ 01 мая 2020

Вход в приложение осуществляется исключительно методом ОТП. Итак, сначала я извлекаю общество, в котором мобильного телефона нет. зарегистрирован. тогда я хочу заполнить мой счетчик только названиями башен этого общества. структура формы пожарного депо, где получено название общества:

     mobile
       |-----(mobile no.)
       |          |----society:"name of society"
       |

, а структура коллекции, имеющая названия общества

   tower_list
       |----(name of tower)
       |           |-----name:"name of tower"
       |           |-----society:"name of society"

, основной код деятельности, который я использую в настоящее время: здесь fAuth - это пример аутентификации на основе firebase, а mtower - мой счетчик;

phone = fAuth.getCurrentUser().getPhoneNumber();
DocumentReference docRef = db.collection("mobile").document(phone);
docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                society = (String) document.get("society").toString();
            } else {
                startActivity(new Intent(getApplicationContext(), otp.class));
                finish();
            }
        } else {
            Toast.makeText(MainActivity.this, "SERVER ERROR! Society not retrieved", Toast.LENGTH_SHORT).show();
        }
    }
});
tower = new ArrayList<>();
adapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_spinner_item, tower);
Query query = db.collection("tower_list");
progressBar3.setVisibility(View.VISIBLE);
db.collection("tower_list").whereEqualTo("society",society)
        .get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                QuerySnapshot doc = task.getResult();
                for (DocumentSnapshot documentSnapshot : doc.getDocuments()){
                    String tower_name = documentSnapshot.get("name").toString();
                    tower.add(tower_name);
                }
            }
        });
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
        mtower.setAdapter(adapter);

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

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