【问题标题】:How to get data from Firebase in recyleview Adapter in android如何在 android 的 recyclerview 适配器中从 Firebase 获取数据
【发布时间】:2017-10-05 05:18:50
【问题描述】:

大家早上好

我想在 Recycleview 适配器中从 Firebase 获取数据

这是我的 Firebase 结构:

在我的 recycleView 适配器中,数据来自 api。

firebase结构说明

这里 user_product_bid 是我的主节点,在 "42" 下是我的 product_id(子节点),并且在该“bids”值下可用。我想根据适配器 positionwise product_id 从 firebase 获取数据。我已成功从 recycleView 发布数据,但在获取时出现问题

请帮助我如何完成这项任务或建议我。

【问题讨论】:

标签: android firebase android-recyclerview


【解决方案1】:

使用以下代码获取数据并将其填充到recyclerview中

List<User_Product_Bid> userPdtBidObj = new ArrayList<User_Product_Bid>();
private DatabaseReference firebaseInstance = FirebaseDatabase.getInstance().getReference();
private DatabaseReference 
        userPdtsBidRef = firebaseInstance.child("user_product_bid");
userPdtsBidRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            long count = dataSnapshot.getChildrenCount();
            if(count != 0) {
            for (DataSnapshot dataObj : dataSnapshot.getChildren()) {

                  User_Product_Bid obj = dataObj.getValue(User_Product_Bid.class);
                  userPdtBidObj.add(obj);
             }
            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        });

User_Product_Bid 的模型类

@IgnoreExtraProperties
public class User_Product_Bid {

    @SerializedName("bids")
    private boolean List<String> bids;

    public User_Product_Bid() {
    }

    public List<String> getBids() {
        return bids;
    }

    public void setBids(List<String> bids) {
        this.bids = bids;
    }
}

【讨论】:

    【解决方案2】:

    您可以简单地做到这一点.. 有一个简单的方法。但你必须为此创建一个模型类。这取决于你......

    databaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if(dataSnapshot.exists()){
                        for (DataSnapshot data : dataSnapshot.getChildren()) {
                String product_id = data.getKey(); //your product id
                Arrylist<String> bits = data.getValue(); //bits for this product
    
                        }
                    }
    
                }
                @Override
                public void onCancelled(DatabaseError databaseError) {
    
                }
            });
    

    【讨论】:

      猜你喜欢
      • 2021-09-27
      • 1970-01-01
      • 2022-09-28
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      相关资源
      最近更新 更多