【问题标题】:Android Firebase DataSnapshot Cast to ClassAndroid Firebase DataSnapshot 转换为类
【发布时间】:2018-02-16 11:54:39
【问题描述】:

我有一个 firebase 数据库。 当我从快照中获得价值时,我在下面有 HashMap:

我有一个像下面这样的 Snap 类。如何将 DataSnapshot 转换为类的列表,例如 List<Snap> snapList = (HashMap<String,Object>) dataSnapshot.child(USER_PHONE).child("friends").getValue();

public class Snap {

    String key;
    String value;

    public  Snap(){

    }
    public Snap(String key, String value) {
        this.key = key;
        this.value = value;
    }

    public String getKey() {
        return key;
    }

    public String getValue() {
        return value;
    }
}

【问题讨论】:

    标签: android class firebase firebase-realtime-database snapshot


    【解决方案1】:

    在 Java 中无法将 HashMap<String,Object> 转换为 List<Snap>。相反,您可以做的是查询您的数据库并获取所有Snap 对象,然后将它们添加到List<Snap>

    ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot ds : dataSnapshot.getChildren()) {
                Snap snap = ds.getValue(Snap.class);
            }
        }
    
        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    yourRef.addListenerForSingleValueEvent(eventListener);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 2021-12-05
      • 2023-03-11
      相关资源
      最近更新 更多