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

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) {
            });

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

0
Boron 23 Окт 2018 в 07:50

2 ответа

Лучший ответ

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

Что-то вроде этого:

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

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

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
0
PradyumanDixit 23 Окт 2018 в 05:08

Вы можете использовать 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
Md Tanbir Hossen 23 Окт 2018 в 05:53
52941385