【发布时间】:2021-05-24 20:28:20
【问题描述】:
我正在尝试从 relatime 数据库中读取以下对象:
.. 到这个 Java Category.class:
public class Category {
private String nombre;
private String descripcion;
private String estado;
private List<String> productos;
private List<Page> paginas;
public Category(){}
public Category(String name) {
this.nombre = "";
this.descripcion = "";
this.estado = "";
productos = new ArrayList<>();
paginas = new ArrayList<>();
}
public String getCategoryName() {
return nombre;
}
public void setCategoryName(String nombre) {
this.nombre = nombre;
}
public String getCategoryDescription() {
return descripcion;
}
public void setCategoryDescription(String descripcion) {
this.descripcion = descripcion;
}
public String getCategoryState() {
return estado;
}
public void setCategoryState(String estado) {
this.estado = estado;
}
public List<String> getProducts() {
return this.productos;
}
public void setProducts(List<String> productos) {
this.productos = productos;
}
public List<Page> getPages() {
return this.paginas;
}
public void setPages(List<Page> pages) {
this.paginas = paginas;
}
@Override
public String toString() {
return nombre;
}
}
我已经从不同的来源搜索和阅读,根据我的理解,我应该使用地图,但事实是,我不知道该怎么做......
这是读取的代码,如果我调试一下,我可以看到dataSnaphot有我需要的一切,但是C类为null:
FirebaseDatabase.getInstance().getReference().child("categorias").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Category c = snapshot.getValue(Category.class);
list.add(c);
}
AdapterCategories adapter = new AdapterCategories(list);
recycleView.setAdapter(adapter);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Toast.makeText(getContext(), error.getMessage(), Toast.LENGTH_LONG).show();
}
});
这是从 FIREBASE 导出的 JSON:
"categorias" : {
"Telas de Hogar" : {
"descripcion" : "",
"estado" : "invisible",
"nombre" : "Telas de Hogar",
"paginas" : {
"Loneta" : {
"descripcion" : "",
"estado" : "invisible",
"nombre" : "Loneta"
}
}
}
}
请谁能帮我解决这个问题。
【问题讨论】:
-
您可以在数据库中同时存储
List和Map,但它们会产生不同的 JSON 结构。您可以编辑您的问题以在categorias包含JSON(作为文本,请不要截图)?您可以通过单击Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。 -
乍一看像
descripcion这样的属性似乎映射得很好。你能Log.d("DB", snapshot.getValue())吗?并在问题中包含更新的代码及其输出?
标签: java android firebase class firebase-realtime-database