簡體   English   中英

如何從 Firebase 中獲取價值到 recycleView

[英]How to get value from Firebase to recycleView

這是 firebase 數據的圖片這是我在 logcat 中獲取的日志圖像

mDatabase=FirebaseDatabase.getInstance();
mRef=mDatabase.getReference("items").child("0").child("snippet");
mChildEventListner = new ChildEventListener() {

    @Override
    public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
        for (DataSnapshot Snapshot : dataSnapshot.getChildren()) {
            CategoriesModelClass user = dataSnapshot.getValue(CategoriesModelClass.class);
            Log.d("kkk", "" + user);
            title_description.add(user);
        }
        categoriesRecycleView.notifyDataSetChanged();
    }

這是我來自activitymain的代碼,我不知道我應該對標題和描述進行查詢還是它會從 for 循環中獲取它?

這是我的 model class 的代碼

public class CategoriesModelClass {
    String title,description;

    public CategoriesModelClass(){

    }

    public CategoriesModelClass(String title, String description) {
        this.title = title;
        this.description = description;
    }

    public String getTitle() {
        return title;
    }

    public String getDescription() {
        return description;
    }

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

    public void setDescription(String description) {
        this.description = description;
    }
}

我試圖在我的回收視圖中設置這些數據我只需要標題和描述

要獲取descriptiontitle的值,請使用以下代碼行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference snippetRef = rootRef.child("items").child("0").child("snippet");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        CategoriesModelClass user = dataSnapshot.getValue(CategoriesModelClass.class);
        Log.d("kkk", "" + user.getTitle());

        //Get the values out of the user object
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d("TAG", databaseError.getMessage()); //Don't ignore errors!
    }
};
snippetRef.addListenerForSingleValueEvent(valueEventListener);

看,不需要遍歷snippet節點,這是因為我們需要根據存儲的 object 的類型來獲取數據。

如果0節點中會有多個項目,那么請使用以下代碼行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference zeroRef = rootRef.child("items").child("0");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            CategoriesModelClass user = ds.getValue(CategoriesModelClass.class);
            Log.d("kkk", "" + user.getTitle());
        }

        //Get the values out of the user object
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d("TAG", databaseError.getMessage()); //Don't ignore errors!
    }
};
zero.addListenerForSingleValueEvent(valueEventListener);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM