Ich möchte, dass meine Kartenansicht den Titel reviewTitle und reviewDetails aus meiner Firebase-Datenbank anzeigt. Wie soll ich das machen? Ich dachte, diesen Code hinzuzufügenHinzufügen von Kinddaten aus der Firebase-Datenbank zu cardview mit Firebaseui
'.child(userID).child("Reviews").child("reviewTitle")'
und '.child(userID).child("Reviews").child("reviewDetails")'
Aber ich habe keine Ahnung, wie es zu meinem Code hinzufügen (I firebaseui verwenden). Meine Kartenansicht zeigt jetzt ein leeres Feld an. Oder wenn es einen anderen Code gibt, den ich verwenden sollte, lassen Sie es mich bitte wissen. Diese
ist, wie meine Feuerbasis Datenbank zur Zeit wie folgt aussieht: here
Und dies ist mein Code:
Mein Fragment
public class MyReviews extends Fragment {
private RecyclerView rv;
private FirebaseAuth firebaseAuth;
private DatabaseReference mDatabase;
LinearLayoutManager nwlinearLayoutManager;
private FirebaseRecyclerAdapter<ReviewInformation, ReviewsHolder> mFirebaseAdapter;
public MyReviews() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_my_reviews, container, false);
rv = rootView.findViewById(R.id.rv_recycler_view);
rv.setHasFixedSize(true);
nwlinearLayoutManager = new LinearLayoutManager(getActivity());
nwlinearLayoutManager.setStackFromEnd(true);
firebaseAuth = FirebaseAuth.getInstance();
FirebaseUser user = firebaseAuth.getCurrentUser();
String userID = user.getUid();
mDatabase = FirebaseDatabase.getInstance().getReference();
Log.i("value1: ", mDatabase.toString());
mFirebaseAdapter = new FirebaseRecyclerAdapter<ReviewInformation, ReviewsHolder>(
ReviewInformation.class,
R.layout.card_item,
ReviewsHolder.class,
mDatabase) {
@Override
public void populateViewHolder(ReviewsHolder holder, ReviewInformation chat, int position) {
holder.reviewTitle.setText(chat.getReviewTitle());
holder.reviewDetails.setText(chat.getReviewDetails());
}
};
mFirebaseAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver(){
@Override
public void onItemRangeInserted(int positionStart, int itemCount){
super.onItemRangeInserted(positionStart, itemCount);
int newsCount = mFirebaseAdapter.getItemCount();
int lastVisiblePosition = nwlinearLayoutManager.findLastVisibleItemPosition();
if(lastVisiblePosition == -1 || (positionStart>= (newsCount -1) && lastVisiblePosition == (positionStart -1))){
rv.scrollToPosition(positionStart);
}
}
});
rv.setLayoutManager(nwlinearLayoutManager);
rv.setAdapter(mFirebaseAdapter);
mFirebaseAdapter.notifyDataSetChanged();
return rootView;
}
public static class ReviewsHolder extends RecyclerView.ViewHolder {
public TextView reviewTitle;
public TextView reviewDetails;
ImageView img;
public ReviewsHolder(View itemView) {
super(itemView);
this.reviewTitle= itemView.findViewById(R.id.tv_text);
this.reviewDetails= itemView.findViewById(R.id.tv_blah);
//img= itemView.findViewById(R.id.beachImage);
}
}
}
Meine Daten
public class ReviewInformation {
public String reviewTitle;
public String reviewDetails;
public ReviewInformation() {
}
public ReviewInformation(String reviewTitle, String reviewDetails) {
this.reviewTitle = reviewTitle;
this.reviewDetails = reviewDetails;
}
public String getReviewTitle() {
return reviewTitle;
}
public void setReviewTitle(String reviewTitle) {
this.reviewTitle = reviewTitle;
}
public String getReviewDetails() {
return reviewDetails;
}
public void setReviewDetails(String reviewDetails) {
this.reviewDetails = reviewDetails;
}
}
Das funktioniert nicht. Tatsache ist, dass meine gesamte Kartenansicht überhaupt nicht angezeigt wird. – ben
hey @Nithin Paul, ich habe mDatabase = FirebaseDatabase.getInstance(). GetReference(). Child ("Geschäftlich"). Child (userID); stattdessen und es funktioniert. außer jetzt kommt ein leerer cardview mit, was ich nicht will. Irgendwelche Ideen, wie man es loswerden kann? – ben