Моя база данных Firebase выглядит так:

Firebase JSON:
Мне нужно отобразить эти данные в виде карты повторного просмотра: дата с соответствующим именем.
Мой вопрос: как реализовать это в классе Java. В настоящее время я сделал это так:
Я знаю, эти имена должны быть такими же, как в firebase, но вместо этого мне нужно сделать это с помощью getKey и getValue
public class UserParties {
public String createAccTime, uuid, party;
public UserParties() {
}
public UserParties(String party, String createAccTime) {
this.party = party;
this.createAccTime = createAccTime;
}
public String getParty() {
return party;
}
public void setParty(String party) {
this.party = party;
}
public String getCreateAccTime() {
return createAccTime;
}
public void setCreateAccTime(String createAccTime) {
this.createAccTime = createAccTime;
}
}
А основным видом деятельности является:
public class AllUserPartiesListActivity extends AppCompatActivity {
private static final String TAG = "AllUserPartiesListActivity";
private RecyclerView UserPartiesList;
// private ImageView BackButton;
private DatabaseReference UsersRef, AllUserPartiesRef;
private FirebaseAuth mAuth;
String currentUserID;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_all_horizontal_parties);
// Log.d(TAG, "onCreate: started.");
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
mAuth = FirebaseAuth.getInstance();
currentUserID = mAuth.getCurrentUser().getUid();
// UsersRef = FirebaseDatabase.getInstance().getReference().child("users").
AllUserPartiesRef = FirebaseDatabase.getInstance().getReference().child("all_user_parties").child(currentUserID);;
// BackButton = (ImageView) findViewById(R.id.backArrow);
//The next code is working on displaying all users posts
UserPartiesList = (RecyclerView) findViewById(R.id.horizontalRecycleView);
UserPartiesList.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(AllUserPartiesListActivity.this);
linearLayoutManager.setReverseLayout(true);
linearLayoutManager.setStackFromEnd(true);
UserPartiesList.setLayoutManager(linearLayoutManager);
// BackButton.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// Intent i = new Intent (getApplicationContext(),SearchActivity.class);
// startActivity(i);
// finish();
// }
// });
DisplayAllUsersData();
}
private void DisplayAllUsersData() {
Query SortPostsInDecendingOrder = AllUserPartiesRef.orderByKey();
FirebaseRecyclerAdapter<UserParties, PostsViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<UserParties, PostsViewHolder>
(
UserParties.class,
R.layout.layout_horizontal_list_item,
PostsViewHolder.class,
SortPostsInDecendingOrder
) {
@Override
protected void populateViewHolder(final PostsViewHolder viewHolder, UserParties model, int position) {
//final String PostKey = getRef(position).getKey();
// final int PostIntKey=position; //var for store post position to return back the user here. Should be declare only here!!!!!!
final String UserKey = getRef(position).getKey();
viewHolder.setCreateAccTime(model.getCreateAccTime());
viewHolder.setParty(model.getParty());
}
};
UserPartiesList.setAdapter(firebaseRecyclerAdapter);
}
public static class PostsViewHolder extends RecyclerView.ViewHolder {
View mView;
public PostsViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setCreateAccTime(String createTime) {
TextView CreateTime = (TextView) mView.findViewById(R.id.name);
CreateTime.setText(createTime);
}
public void setParty(String party) {
ImageView UserPostParty = (ImageView) mView.findViewById(R.id.image_view);
Picasso.get().load(party).fit().into(UserPostParty);
}
}
Ниже также актуален файл макета:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="1dp">
<android.support.v7.widget.CardView
android:layout_width="120dp"
android:layout_height="120dp"
app:cardCornerRadius="4dp"
app:cardMaxElevation="2dp"
app:cardElevation="1dp"
android:layout_centerInParent="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="90dp"
android:layout_height="90dp"
android:scaleType="centerCrop"
android:layout_centerHorizontal="true"
android:id="@+id/image_view"
android:src="@drawable/ic_kulanu"
/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:text="Canada"
android:layout_below="@+id/image_view"
android:layout_centerHorizontal="true"
android:gravity="center"
android:layout_marginTop="1dp"
android:textColor="#000"
android:layout_marginBottom="1dp"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="8sp"
android:autoSizeMaxTextSize="15sp"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
Полный журнал ошибок:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.bluesky, PID: 32213
com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.android.bluesky.Admin.UserParties
at com.google.android.gms.internal.zg.zzb(Unknown Source:221)
at com.google.android.gms.internal.zg.zza(Unknown Source:0)
at com.google.firebase.database.DataSnapshot.getValue(Unknown Source:10)
at com.firebase.ui.database.ClassSnapshotParser.parseSnapshot(ClassSnapshotParser.java:22)
at com.firebase.ui.database.ObservableSnapshotArray.getObject(ObservableSnapshotArray.java:141)
at com.firebase.ui.database.CachingObservableSnapshotArray.getObject(CachingObservableSnapshotArray.java:40)
at com.firebase.ui.database.FirebaseRecyclerAdapter.getItem(FirebaseRecyclerAdapter.java:127)
at com.firebase.ui.database.FirebaseRecyclerAdapter.onBindViewHolder(FirebaseRecyclerAdapter.java:164)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6673)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6714)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5647)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5913)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5752)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5748)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2232)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1559)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1519)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:614)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3812)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3529)
at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1767)
at android.support.v7.widget.RecyclerView$1.run(RecyclerView.java:356)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
at android.view.Choreographer.doCallbacks(Choreographer.java:761)
at android.view.Choreographer.doFrame(Choreographer.java:693)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
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)