java Android Firebase数据库子节点
我有一个Firebase数据库结构,如下所示:
the firebase database structure
现在我想访问节点“comingSoonPages”中的项到一个模型类。如何获取对该节点中这些不同用户指定项的引用
数据库参考:
mUpcomingDatabaseReference = mFirebaseDatabase.getReference().child("comingSoonPages").child("blrKoramangala")
现在,引用的侦听器如下所示:
mValueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapShot : dataSnapshot.getChildren()){
Log.e("snap" , String.valueOf(snapShot));
try{
UpcomingProperty property = snapShot.getValue(UpcomingProperty.class);
Log.e("name" , String.valueOf(property.getName()));
}catch (Exception ex){
ex.printStackTrace();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
mUpcomingDatabaseReference.addValueEventListener(mValueEventListener);
当我尝试记录每个节点中的名称时,我得到了NPE,值为null
我正在映射的模型类是:
public class UpcomingProperty implements Serializable {
//private Amenities amenities;
private List<String> amenities;
private Coordinates coordinates;
private Image image;
private String link;
private String location;
private String name;
private Text text;
private List<String> sortParameter;
private EarlyBird earlyBird;
public UpcomingProperty(){}
public List<String> getAmenities() {
return amenities;
}
public void setAmenities(List<String> amenities) {
this.amenities = amenities;
}
public Coordinates getCoordinates() {
return coordinates;
}
public void setCoordinates(Coordinates coordinates) {
this.coordinates = coordinates;
}
public Image getImage() {
return image;
}
public void setImage(Image image) {
this.image = image;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Text getText() {
return text;
}
public void setText(Text text) {
this.text = text;
}
public List<String> getSortParameter() {
return sortParameter;
}
public void setSortParameter(List<String> sortParameter) {
this.sortParameter = sortParameter;
}
public EarlyBird getEarlyBird() {
return earlyBird;
}
public void setEarlyBird(EarlyBird earlyBird) {
this.earlyBird = earlyBird;
}
}
谢谢
扩展firebase节点: extended node values
# 1 楼答案
要获取该数据,请使用以下代码:
唯一的名字将是out。但是你也可以用同样的方法得到所有其他的值
如果要使用model类,请使用以下代码:
您将获得相同的输出
# 2 楼答案
假设}
comingSoonPages
包含一个项列表,如果希望访问该项的所有子节点,则需要在comingSoonPages
引用上添加一个^{您可以阅读有关使用数据列表here的更多信息
然而,如果这不是一个清单,下面是你做错了什么: