Задать вопрос
@retr0

FirebaseDatabase error: failed to convert Hashmap to String в Android приложении, как исправить?

Не могу получить значение child через ValueEventListener.

Ошибка: 59eb86c22a115814532651.png

Моя FirebaseDatabase: 59eb86e74e3e3419718337.png

Код:
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
        DatabaseReference ref = databaseReference.child(path);

        ref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                String value = dataSnapshot.getValue(String.class);

                ClipboardManager clipboard = (ClipboardManager) getApplicationContext().getSystemService(CLIPBOARD_SERVICE);
                clipboard.setText(value);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {


            }


Ругается именно на строчку
String value = dataSnapshot.getValue(String.class);

Стоит отметить что с данным кодом:
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
            DatabaseReference ref = databaseReference.child(path);

            ClipboardManager clipboard = (ClipboardManager) getApplicationContext().getSystemService(CLIPBOARD_SERVICE);

            String data = clipboard.getText().toString();
            ref.setValue(data);
все в порядке, хоть и DatabaseReference одинаковы. Не могу понять в чем проблема, буду благодарен за помощь.
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
data это не строка, а хэшмап, как тебе и пишут в логах.
Ответ написан
Комментировать
@aol-nnov
у меня есть одно слово для тебя: отладчик.
и сразу многое прояснится!
Ответ написан
@hasdfa
Junior
Firebase возвращает хешмапу с одной строкой
Ключ: uzmtn
Значение: data

Если тебе нужно сразу строка, то это вроде так делается:
DatabaseReference ref = databaseReference.child(path).child("uzmtn");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы