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

Я пытаюсь прочитать некоторые значения из базы данных Firebase в реальном времени.Моя структура выглядит так:

enter image description here

и мой код для получения значения ("Wine and Dine"):

databaseReference.child("test").child("event_name").child("drinks")
            .addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    Object dataSnapshotObject = dataSnapshot.getValue(String.class);

                   if(dataSnapshotObject != null){
                    Toast.makeText(content, "Event Name: " + dataSnapshotObject.toString(), Toast.LENGTH_LONG).show();
                   }else
                    Toast.makeText(context,"null",Toast.LENGTH_SHORT).show();

              }

                @Override
                public void onCancelled(DatabaseError databaseError) {
            });

Однако в качестве значения я получаю только нулевой ответ.Что я могу делать не так?

Ответы [ 2 ]

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

Вы можете использовать addListenerForSingleValueEvent, чтобы получить значение

Пример кода:

FirebaseDatabase.getInstance().getReference().child("test").child("event_name").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            HashMap hashUser = (HashMap) dataSnapshot.getValue();
            if (hashUser != null) {
                String Drinks = hashUser.get("drinks").toString();
                //Toast.makeText(this, Drinks , Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
0 голосов
/ 23 октября 2018

Вы можете удалить .child("drinks") из цепочки (и вставить его позже, как в коде ниже), и если вы все равно хотите сделать dataSnapshotObject до String, то вам нужно извлечь его в String.

Примерно так:

String value = dataSnapshot.child("drinks").getValue(String.class);

Также проверьте, выглядит ли ваш databaseReference примерно так или нет.

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...