java - 从 ArrayList 中的 Firebase 获取值

标签 java android firebase firebase-realtime-database

我需要获取所有keys来自ReceptIdOneArrayList第一个和下一个从 ReceotIdTwo 获取所有 key 在ArrayList 。我的数据库具有结构:

{
  "Receptes" : {
    "Ingridients" : {
      "IngridientIdOne" : {
        "Carrot" : true,
        "Salt" : true,
        "Apples" : true
      },
      "IngridientIdTwo" : {
        "Strawberries" : true,
        "Sugar" : true,
        "Bananas" : true
      }
    }
  }
}

我尝试使用我的代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ingridientsRef = rootRef.child("Receptes").child("Ingridients");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String ingridient = ds.getKey();
            Log.d("TAG", ingridient);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
ingridientsRef.addListenerForSingleValueEvent(valueEventListener);

但我只得到值Ingridients在我的日志中。我做错了什么?我怎样才能做我想做的事?

最佳答案

如果您想要 ReceptIdOne 中的 key ,请尝试以下操作:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ingridientsRef = rootRef.child("Receptes").child("Ingridients");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    for(DataSnapshot ds : dataSnapshot.getChildren()) {
          Boolean carrot = (Boolean) ds.child("Carrot").getValue();
        //etc
        Log.d("TAG", ingridient);
    }
}

   @Override
public void onCancelled(DatabaseError databaseError) {}
  };
ingridientsRef.addListenerForSingleValueEvent(valueEventListener);

在这里,您在 recepIdOne 中循环并检索其中的值。

关于java - 从 ArrayList 中的 Firebase 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50370994/

相关文章:

firebase - 如何每天自动备份Firestore数据库

java - 为什么 Arrays.sort 采用 Object[] 而不是 Comparable[]?

java - 在 JToolbar 中设置 JLabel 的大小

java - 从 Excel 读取数值但在 Java 中显示错误

android - 在 RelativeLayout 中一起使用 layout_alignBaseline 和 layout_alignBottom

swift - 实例成员存储不能用于 StorageReference 类型

java - 如何在netbeans、java web项目的第一行中断

java - 为什么我的 android 应用程序读取 åäö 而我的 java 应用程序却没有(从 GAE 获取数据时)?

android - 如何从菜单项中获取 View 引用?

swift - 无法传递从 firebase 数据库下载的图像