Android Can';t将java.lang.String类型的对象转换为com.example.messenger.messenger.Friends类型

Android Can';t将java.lang.String类型的对象转换为com.example.messenger.messenger.Friends类型,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想在RecyclerView中显示Firebase数据。firebase由数据库参考“Friends”组成,用户id如下图所示, 我想通过此代码获取特定id的数据 mAuth = FirebaseAuth.getInstance(); mCurrent_user_id = mAuth.getCurrentUser().getUid(); queryFriends = FirebaseDatabase.getInstance().getReference().child("Friends")

我想在RecyclerView中显示Firebase数据。firebase由数据库参考“Friends”组成,用户id如下图所示,

我想通过此代码获取特定id的数据

mAuth = FirebaseAuth.getInstance();

mCurrent_user_id = mAuth.getCurrentUser().getUid();
queryFriends = FirebaseDatabase.getInstance().getReference().child("Friends").child(mCurrent_user_id);
在上面的一行中,.child(mCurrent_user_id)创建了致命错误,应用程序崩溃。我已经用下面的代码记录了mCurrent_user_id,该代码给出了与Friends数据库参考中相同的正确结果

Log.d("sdfsdf", mCurrent_user_id);
日志结果为
com.example.messenger.messenger D/sdfsdf:wed5qptcdcqvzvlrcbmo1nx43v1

回收商代码:

queryFriends = FirebaseDatabase.getInstance().getReference().child("Friends").child(mCurrent_user_id);
        queryFriends.keepSynced(true);

        FirebaseRecyclerOptions<Friends> options =
                new FirebaseRecyclerOptions.Builder<Friends>()
                        .setQuery(queryFriends, Friends.class)
                        .build();

        firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Friends, FriendsViewHolder>(options) {
            @Override
            public FriendsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                // Create a new instance of the ViewHolder, in this case we are using a custom
                // layout called R.layout.message for each item
                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.adapter_users_activity_layout, parent, false);

                return new FriendsViewHolder(view);
            }

            @Override
            protected void onBindViewHolder(final FriendsViewHolder friendsViewHolder, int position, Friends friends) {
                friendsViewHolder.setDate(friends.getDate());
}
例外情况:

E/AndroidRuntime: FATAL EXCEPTION: main
    com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.messenger.messenger.Friends
        at com.google.android.gms.internal.zzelw.zzb(Unknown Source)
        at com.google.android.gms.internal.zzelw.zza(Unknown Source)
规则:

我认为以下几行是问题的根源:

userNameView.setText(name);
userStatusView.setText(date);
您的
ViewHolder
在将数据设置到视图中时出现问题。请尝试在
onBindViewHolder()
方法中设置这些

更新:作为您的
视图持有者尝试以下操作:

public class FriendsViewHolder extends RecyclerView.ViewHolder {

    TextView textName;
    TextView textDate;

    public FriendsViewHolder(View itemView) {
        super(itemView);

        textName = itemView.findViewById(R.id.user_single_name);
        textDate = itemView.findViewById(R.id.user_single_status);


    }

}
friendsViewHolder.textName.setDate(friends.getName());
friendsViewHolder.textDate.setDate(friends.getDate());
onBindViewHolder()中,这是:


我假设您的
适配器
具有用于设置日期名称的setters-getter。

您可以给出您的logcat或致命错误的名称吗?无法将java.lang.String类型的对象转换为com.example.messenger.messenger.Friendshow类型我可以这样做?同样的错误无法将java.lang.String类型的对象转换为类型com.example.messenger.messenger.Friends控件在我使用此控件时无法进入OnBindViewHolder(),然后程序工作正常queryFriends=FirebaseDatabase.getInstance().getReference().child(“朋友”);但我需要“朋友”的孩子
friendsViewHolder.textName.setDate(friends.getName());
friendsViewHolder.textDate.setDate(friends.getDate());