com.google.firebase.database.DatabaseException:Can';t将java.lang.String类型的对象转换为com.NoteModelActivity类型突然出现错误

com.google.firebase.database.DatabaseException:Can';t将java.lang.String类型的对象转换为com.NoteModelActivity类型突然出现错误,java,database,android-studio,class,Java,Database,Android Studio,Class,我的应用程序运行得非常好,但突然出现以下错误: com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.NoteModelActivity 我正在使用一个回收视图。 我无法理解这个问题是从哪里突然出现在一个正在运行的应用程序中的。 我一打开活动,应用程序就会崩溃。而在没有任何改变的情况下,它工作得非常好 我阅读了这个问题的解决方案,但答案

我的应用程序运行得非常好,但突然出现以下错误:

 com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.NoteModelActivity
我正在使用一个回收视图。 我无法理解这个问题是从哪里突然出现在一个正在运行的应用程序中的。 我一打开活动,应用程序就会崩溃。而在没有任何改变的情况下,它工作得非常好

我阅读了这个问题的解决方案,但答案与Value listener中的“toString”有关,但我已经实现了

请帮帮我

我的日志:

      com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.NoteModelActivity
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:435)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:231)
    at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(CustomClassMapper.java:79)
    at com.google.firebase.database.DataSnapshot.getValue(DataSnapshot.java:203)
    at com.firebase.ui.database.ClassSnapshotParser.parseSnapshot(ClassSnapshotParser.java:29)
    at com.firebase.ui.database.ClassSnapshotParser.parseSnapshot(ClassSnapshotParser.java:15)
    at com.firebase.ui.common.BaseCachingSnapshotParser.parseSnapshot(BaseCachingSnapshotParser.java:36)
    at com.firebase.ui.common.BaseObservableSnapshotArray.get(BaseObservableSnapshotArray.java:52)
    at com.firebase.ui.database.FirebaseRecyclerAdapter.getItem(FirebaseRecyclerAdapter.java:109)
    at com.firebase.ui.database.FirebaseRecyclerAdapter.onBindViewHolder(FirebaseRecyclerAdapter.java:149)
    at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065)
    at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107)
    at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012)
    at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
    at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
    at androidx.recyclerview.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:561)
    at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
    at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
    at androidx.recyclerview.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
    at androidx.recyclerview.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1897)
    at androidx.recyclerview.widget.RecyclerView$1.run(RecyclerView.java:414)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1147)
    at android.view.Choreographer.doCallbacks(Choreographer.java:958)
    at android.view.Choreographer.doFrame(Choreographer.java:881)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1133)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:226)
    at android.app.ActivityThread.main(ActivityThread.java:7224)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:500)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:913)
  
我的模型课:

      public class NoteModelActivity  {

public String noteTitle;
public String noteTime;

public NoteModelActivity() {

}

public NoteModelActivity(String noteTitle, String noteTime) {
    this.noteTitle = noteTitle;
    this.noteTime = noteTime;
}

public String getNoteTitle() {
    return noteTitle;
}

public void setNoteTitle(String noteTitle) {
    this.noteTitle = noteTitle;
}

public String getNoteTime() {
    return noteTime;
}

public void setNoteTime(String noteTime) {
    this.noteTime = noteTime;
}
我的活动:

    fAuth = FirebaseAuth.getInstance();
    if (fAuth.getCurrentUser() != null) {
        fNotesDatabase = FirebaseDatabase.getInstance().getReference().child("Notes").child(fAuth.getCurrentUser().getUid());
    }
   loadData();
}

    private void loadData() {

         FirebaseRecyclerOptions<NoteModelActivity> options =
                 new FirebaseRecyclerOptions.Builder<NoteModelActivity>()
                 .setQuery(fNotesDatabase , NoteModelActivity.class)
                 .build();

    FirebaseRecyclerAdapter<NoteModelActivity, NoteViewHolderActivity>
            firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<NoteModelActivity, NoteViewHolderActivity>(options) {

        @NonNull
        @Override
        public NoteViewHolderActivity onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_note_layout, parent, false);
            NoteViewHolderActivity viewHolder = new NoteViewHolderActivity(view);
            return viewHolder;
        }

        @Override
        protected void onBindViewHolder(@NonNull final NoteViewHolderActivity holder, int position, @NonNull NoteModelActivity model) {

            final String noteId = getRef(position).getKey();

            fNotesDatabase.child(noteId).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if (dataSnapshot.hasChild("title") && dataSnapshot.hasChild("timestamp")) {
                        String title = dataSnapshot.child("title").getValue(String.class);
                        String timestamp = dataSnapshot.child("timestamp").getValue(String.class);

                        holder.setNoteTitle(title);

                        GetTimeAgo getTimeAgo = new GetTimeAgo();
                        holder.setNoteTime(getTimeAgo.getTimeAgo(Long.parseLong(timestamp), getApplicationContext()));

                        holder.noteCard.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                Intent intent = new Intent(PostActivity.this, NewNoteActivity.class);
                                intent.putExtra("noteId", noteId);
                                startActivity(intent);
                            }
                        });
                    }

                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });


        }
    };
    mNotesList.setAdapter(firebaseRecyclerAdapter);
    firebaseRecyclerAdapter.startListening();
}
另一个示范班

  public class postsRecyclerView  {

public postsRecyclerView(String username, String article, String title, String date, String timestamp) {
    this.username = username;
    this.article = article;
    this.title = title;
    this.date = date;
    this.timestamp = timestamp;
}

public String username, title,article, date, timestamp;

public String getTimestamp() {
    return timestamp;
}

public void setTimestamp(String timestamp) {
    this.timestamp = timestamp;
}

public String getDate() {
    return date;
}

public void setDate(String date) {
    this.date = date;
}

public String getArticle() {
    return article;
}

public void setArticle(String article) {
    this.article = article;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}
}

我的firebase数据库:

我非常感谢你的帮助。。。
请帮助我…

为您的postRecyclerview类添加一个不带参数的构造函数,这将解决
'未定义无参数构造函数'。单击ctrl+alt+insert,然后单击构造函数并单击select none。对于第一个错误,您的数据库中似乎有一个字符串,检索方法不起作用。你能上传你数据库的图像,这样我就可以找出你的问题了。

对于你的postRecyclerview类,添加一个没有参数的构造函数,这将解决问题
'未定义无参数构造函数'。单击ctrl+alt+insert,然后单击构造函数并单击select none。对于第一个错误,您的数据库中似乎有一个字符串,检索方法不起作用。你能上传你数据库的图片吗?这样我就可以找出你的问题。

谢谢你的回复。。它起作用了。。我的主要问题也得到了解决。。由于我的应用程序突然恢复工作…感谢回复。。它起作用了。。我的主要问题也得到了解决。。当我的应用程序突然再次运行时。。。
  public class postsRecyclerView  {

public postsRecyclerView(String username, String article, String title, String date, String timestamp) {
    this.username = username;
    this.article = article;
    this.title = title;
    this.date = date;
    this.timestamp = timestamp;
}

public String username, title,article, date, timestamp;

public String getTimestamp() {
    return timestamp;
}

public void setTimestamp(String timestamp) {
    this.timestamp = timestamp;
}

public String getDate() {
    return date;
}

public void setDate(String date) {
    this.date = date;
}

public String getArticle() {
    return article;
}

public void setArticle(String article) {
    this.article = article;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}