java - 无法转换 java.lang.Boolean 类型的对象

标签 java android firebase firebase-realtime-database

我已经查看了本主题中的很多主题,但我无法在自己的代码中调整代码。因为显然有一个我看不到的错误。我收到了错误。

EpisodeModel.class

公共(public)课 EpisodeModel {

private String episode;

public EpisodeModel(String episode) {
    this.episode = episode;
}

public EpisodeModel()
{

}

public String getEpisode() {
    return episode;
}

public void setEpisode(String episode) {
    this.episode = episode;
}

@Override
public String toString() {
    return "EpisodeModel{" +
            "episode='" + episode + '\'' +
            '}';
}

}

MyFragment.class

public void check() {
        ref.child("Users").child(user.getUid()).child("Watched").child(seriesTitle).child("Season").child(seasonGet)
                .addChildEventListener(new ChildEventListener() {
                    @Override
                    public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

                        EpisodeModel episodeModel = dataSnapshot.getValue(EpisodeModel.class);
                        Log.i("child",episodeModel.toString());

                        Log.i("test","test2");
                        String st = dataSnapshot.getKey();
                        int no = Integer.parseInt(st);

                        if(!deneme.contains(no))
                        {
                            deneme.add(no);
                        }

                        checkModelTestAdapter.notifyDataSetChanged();
                    }


...onChildChanged..onChildRemoved..onChildMoved..onCancelled..}};

Logcat

Process: com.example.forev.seriesboiler, PID: 6959
    com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.Boolean to type com.example.forev.seriesboiler.Models.EpisodeModel
        at com.google.android.gms.internal.firebase_database.zzkt.zzb(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzkt.zza(Unknown Source)
        at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
        at com.example.forev.seriesboiler.Fragments.SeriesDetailsFragment$1.onChildAdded(SeriesDetailsFragment.java:88)
        at com.google.android.gms.internal.firebase_database.zzbt.zza(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzgx.zzdr(Unknown Source)
        at com.google.android.gms.internal.firebase_database.zzhd.run(Unknown Source)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)

最佳答案

EpisodeModel episodeModel = dataSnapshot.getValue(EpisodeModel.class);

在这一行中,您收到错误消息,指出 Boolean 对象无法转换为 EpisodeModel。如果您将该子项的值设置为 truefalse(不带双引号),则可能会出现此情况。再次查看并尝试在要设置为子值的 "true""false" 两边添加双引号。

关于java - 无法转换 java.lang.Boolean 类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55441403/

相关文章:

java - Jersey 网络服务器中的 Spring 注入(inject)错误

java - ZygoteInit$MethodAndArgsCaller.run() 按 ID 查找布局时出错

java - 通过 Android 应用程序发送短信而不移动到消息框默认应用程序

android - 保存首选项

swift - Firebase Xcode Swift - 卡在 downloadURL 上

java - 高质量(手机摄像头拍摄的图像)使 Android 中的 feed 滞后(缓慢),解决方案吗?

java - 如何在DynamicReports和JasperReports中获得相同的样式

android - 提交 SharedPreferences 时发生 StackOverFlowException

android - 有没有办法让 Activity 知道刚刚创建了什么 fragment ?

javascript - Firebase 限制对所有者的访问