Spinner не получает никаких данных из базы данных Firebase - PullRequest
0 голосов
/ 02 октября 2018

Я хочу сделать валидацию бланков, чтобы, если пользователь не выбрал название учебного центра, он отправил сообщение.Затем я хочу заполнить счетчик данными из базы данных Firebase.Как указано в этой ссылка .Я хочу попробовать это в моих приложениях кодирования.Но он не получил никаких данных из моей базы данных Firebase.Прошло несколько дней, я до сих пор не могу понять, может кто-нибудь, пожалуйста, помогите мне ....

Моя база данных Firebase, как показано на рисунке ниже: -

enter image description here

Кодирование счетчика: -

   DatabaseReference mDatabaseRef = FirebaseDatabase.getInstance().getReference();

    mDatabaseRef.child("Advertisement").child(mAuth.getUid())
            .addValueEventListener(new ValueEventListener()
            {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot)
                {
                    //ArrayList<String> identity = new ArrayList<>();
                    final List<String> identity = new ArrayList<String>();
                    identity.add(0, "Choose Tuition Centre");

                    for (DataSnapshot snapshot : dataSnapshot.getChildren())
                    {
                        Advertisement advertisement = snapshot.getValue(Advertisement.class);
                        identity.add(advertisement.getAdstuitioname());
                    }

                    ArrayAdapter<String> nameAdapter = new ArrayAdapter<String>(RatingActivity.this, android.R.layout.simple_spinner_item, identity);
                    nameAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    mName.setAdapter(nameAdapter);
                }

                @Override
                public void onCancelled(DatabaseError databaseError)
                {

                }
            });

    mName.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
        {
            if(position==0)
            {
                //Toast.makeText(getApplicationContext(),"No Item Selected",Toast.LENGTH_LONG).show();
            }

            else
            {
                Toast.makeText(getApplicationContext(),parent.getItemAtPosition(position) +" Selected",Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent)
        {
            // TODO Auto-generated method stub
        }
    });

Интерфейс вывода моих приложений: -

enter image description here

1 Ответ

0 голосов
/ 02 октября 2018

В вашем коде есть вложенные идентификаторы, фактические данные после 2 идентификаторов.вам нужно пройти.Просто замените код цикла for на этот код.

 for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
     for (DataSnapshot dataSnapshot1 : snapshot.getChildren()) {
      identity.add(dataSnapshot1.child("adstuitioname").getValue(String.class));
         }
     }

оставьте все как есть.

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