Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
DAWSON1
1 / 1 / 0
Регистрация: 24.01.2019
Сообщений: 15
1

Ошибка при работе с Firebase Database

22.02.2019, 21:35. Просмотров 512. Ответов 2

Привет всем, столкнулся с проблемой, если вы понимаете в Firebase Realtime Database, а в частности в работе с массивами в ней, помогите разобраться. Написал код для приложения который при нажатии на кнопку выдает первое значение из базы и удаляет ее из базы, но при нажатии в эмуляторе приложение вылетает с ошибкой.
Мой код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package com.example.ru.puddig;
 
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
 
import java.util.LinkedList;
 
 
public class MainActivity extends AppCompatActivity {
 
 
    Button mButtonSee;
    TextView mTextViewPromo;
 
 
    DatabaseReference mRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference mPromoRef = mRef.child("delivery");
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
        mButtonSee = findViewById(R.id.buttonSee);
        mTextViewPromo = findViewById(R.id.promo);
 
 
        mButtonSee.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                mPromoRef.addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        LinkedList<String> values = new LinkedList<>();
                        boolean isFirst = true;
                        for (DataSnapshot codeSnapshot: dataSnapshot.getChildren()) {
                            if (isFirst) {
                                isFirst = false;
                            }
                            else {
                                String text = codeSnapshot.getValue(String.class);
                                values.add(text);
                            }
                        }
                        mPromoRef.setValue(values);
                    }
 
                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {
                        throw databaseError.toException();
                    }
 
                });
 
            }
        });
 
    }
}
Logcat:

2019-02-22 21:33:43.502 4777-4777/com.example.ru.puddig E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.ru.puddig, PID: 4777
com.google.firebase.database.DatabaseException: Failed to convert value of type java.util.HashMap to String
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertString(com.google.firebase:firebase-database@@16.0.6:413)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(com.google.firebase:firebase-database@@16.0.6:199)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(com.google.firebase:firebase-database@@16.0.6:79)
at com.google.firebase.database.DataSnapshot.getValue(com.google.firebase:firebase-database@@16.0.6:212)
at com.example.ru.puddig.MainActivity$1$1.onDataChange(MainActivity.java:54)
at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:firebase-database@@16.0.6:183)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@16.0.6:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@16.0.6:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@16.0.6:55)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2019-02-22 21:33:43.574 4777-4777/com.example.ru.puddig I/Process: Sending signal. PID: 4777 SIG: 9
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2019, 21:35
Ответы с готовыми решениями:

Массивы в Firebase Realtime Database
Всем привет! Допустим есть некий массив в БД Firebase, вот: Для андроид студио сделан код чтобы...

FireBase | Realtime DataBase Rules| как это настроить?
Здравствуйте! в правилах FB следующее: { &quot;rules&quot;: { &quot;users&quot;: { &quot;$uid&quot;: { ...

Игровая валюта с AdMob Rewarded Video / Firebase database
Здравствуйте. На основании этой статьи: https://habrahabr.ru/post/335008/ делаю игровую валюту. У...

Android Studio изъятие данных из дочерних firebase database в RecyclerView через fragment
Здравствуйте, я только начинаю программировать на андроиде, подскажите пожалуйста где и что я...

Firebase datasnapshot ошибка ?
Вот сам кодprivate void attachDatabaseReadListener() { if (mtestChildEventListener ==...

2
ExFau$t
762 / 629 / 156
Регистрация: 08.05.2012
Сообщений: 3,069
22.02.2019, 21:41 2
Перевести?
Цитата Сообщение от DAWSON1 Посмотреть сообщение
codeSnapshot.getValue(String.class);
Цитата Сообщение от DAWSON1 Посмотреть сообщение
Failed to convert value of type java.util.HashMap to String
0
DAWSON1
1 / 1 / 0
Регистрация: 24.01.2019
Сообщений: 15
22.02.2019, 22:19  [ТС] 3
То есть поменять String на Map и все?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2019, 22:19

SQLite DataBase - почему подчеркивает DataBase db: пишет (DataBase cannot be resolved to a type)
Здравствуйте! помогите понять почему подчеркивает DataBase db; пишет (DataBase cannot be...

Ошибка подключения Firebase к Android Studio
При попытке подключить Firebase, получается такая ошибка: Failed to resolve: firebase-auth-15.0.0...

Ошибка при работе с JSON
база на локальном сервере, если переходить по URL в браузере все выводит...андроид - нет вот така...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru