如何添加模型类以获取特定的firebase数据

时间:2018-01-05 10:38:08

标签: android firebase-realtime-database

我的firebase格式是

-artpics  
  |
  |-Luyaosskdkdpdsaaas  //generated key
  |  |
  |  |-pic_url:"https://firebasestorage.googleapis.com/fhgfhghg/dfhu"
  |  |-islike: true
  |
  |-Luasdasdkdkdpdsaaas
  |  |
  |  |-pic_url:"https://firebasestorage.googleapis.com/fhgasfhghg/dfhasu"
  |  |-islike: false

如何编写artpics的模型类,以便我可以获得每个键pic_url(string)和islike(boolean)

2 个答案:

答案 0 :(得分:1)

对于每个生成的密钥,您将获得一组数据pic_urlislike

因此,创建一个模型类来存储与生成的密钥对应的数组数据。

模型类如下

public class Deal implements Serializable {
    @SerializedName("pic_url")
    private String pic_url;

    @SerializedName("islike")
    private Boolean islike;
}

也创建构造函数,setter和getter。

答案 1 :(得分:1)

这是您的模型类的外观:

public class ModelClass {
    String picUrl;
    Boolean isLike;

    ModelClass() {}

    public ModelClass(String picUrl, Boolean isLike) {
        this.picUrl = picUrl;
        this.isLike = isLike;
    }

    public String getPicUrl() {
        return picUrl;
    }

    public Boolean getIsLike() {
        return isLike;
    }
}

要使用此模型类添加数据,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference yourRef = rootRef.child("artpics").push();
ModelClass modelClass = new ModelClass("yourUrl", true);
yourRef.setValue(modelClass);

要从Firebase数据库获取数据,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference artpicsRef = rootRef.child("artpics");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String picUrl = ds.child("address").getValue(String.class);
            Boolean isLike = ds.child("isLike").getValue(picUrl.class);
            Log.d("TAG", picUrl + " / " + isLike);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
artpicsRef.addListenerForSingleValueEvent(eventListener);

另请参阅Java Naming Conventions