我已经尝试了几个小时来读取产品分支中的 0 和 1。请在 firebase 数据库方面经验丰富的人帮助我:(
private void showData(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()){
Food uInfo = new Food();
uInfo.setName(ds.child("products").getValue(Food.class).getName());
uInfo.setIngredients(ds.child("products").getValue(Food.class).getIngredients());
//display all the information
Log.d(TAG, "showData: name: " + uInfo.getName());
Log.d(TAG, "showData: ingredients: " + uInfo.getIngredients());
ArrayList<String> array = new ArrayList<>();
array.add(uInfo.getName());
array.add(uInfo.getIngredients());
[ArrayAdapter adapter = new][1] ArrayAdapter(this,android.R.layout.simple_list_item_1,array);
mListView.setAdapter(adapter);
}
}
最佳答案
你做错了。
首先,确保您的模型类 Food
包含您想要解析的所有字段。
public class Food
{
private String NDB_number;
private String long_name;
private String ingredients_english;
public String getNDB_number() {
return NDB_number;
}
public void setNDB_number(String NDB_number) {
this.NDB_number = NDB_number;
}
public String getLong_name() {
return long_name;
}
public void setLong_name(String long_name) {
this.long_name = long_name;
}
public String getIngredients_english() {
return ingredients_english;
}
public void setIngredients_english(String ingredients_english) {
this.ingredients_english = ingredients_english;
}
public Food(String NDB_number, String long_name, String ingredients_english)
{
this.long_name = long_name;
this.NDB_number = NDB_number;
this.ingredients_english = ingredients_english;
}
}
那么你可以按如下方式解析产品
// Get a reference to our Products
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("foodnutrientstest").child("Products");
// Attach a listener to read the products
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()){
Food food = ds.getValue(Food.class);
//display all the information
Log.d(TAG, "showData: name: " + food.getLong_name());
Log.d(TAG, "showData: ingredients: " + food.getIngredients_english());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
干杯:)
关于java - 从firebase实时数据库读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57487954/