@Chesterfield25

Почему вылетает приложение?

Без видимых ошибок вылетает приложение?

код ошибки

021-05-15 00:57:41.674 10030-10030/com.buratinoapps.realtimedatabase E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.buratinoapps.realtimedatabase, PID: 10030
com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.Long to type com.buratinoapps.realtimedatabase.User
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:436)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:232)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(CustomClassMapper.java:80)
at com.google.firebase.database.DataSnapshot.getValue(DataSnapshot.java:203)
at com.buratinoapps.realtimedatabase.userlist$1.onDataChange(userlist.java:45)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
2021-05-15 00:57:41.734 10030-10030/com.buratinoapps.realtimedatabase I/Process: Sending signal. PID: 10030 SIG: 9

код userlist

package com.buratinoapps.realtimedatabase;

import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

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.ArrayList;

public class userlist extends AppCompatActivity {

    RecyclerView recyclerView;
    DatabaseReference database;
    MyAdapter myAdapter;
    ArrayList<User> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_userlist);

        recyclerView = findViewById(R.id.userList);
        database = FirebaseDatabase.getInstance().getReference("Users");
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        list = new ArrayList<>();
        myAdapter = new MyAdapter(this,list);
        recyclerView.setAdapter(myAdapter);

        database.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {

                for (DataSnapshot dataSnapshot : snapshot.getChildren()){

                    User user = dataSnapshot.getValue(User.class);
                    list.add(user);


                }
                myAdapter.notifyDataSetChanged();

            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });


    }
}


выдаёт ошибку на 45 строке.
  • Вопрос задан
  • 62 просмотра
Решения вопроса 2
profesor08
@profesor08
Без видимых ошибок вылетает приложение?

Can't convert object of type java.lang.Long to type com.buratinoapps.realtimedatabase.User
Ответ написан
@vabka
Токсичный шарпист
Судя по ошибке и стактрейсу, проблема тут:
User user = dataSnapshot.getValue(User.class);
Видимо в базе нифига не User лежит, а число
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@prince_pagani
студен-программист
так написано проблема в объекте удачного дебага
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы