android - 如何在 Firebase 类中表示嵌套数据

标签 android firebase firebase-realtime-database

取自 Firebase 示例,如果我有这样的恐龙事实数据结构:

{
  "lambeosaurus": {
    "name": "lamby",
    "work": "eat",
    "dimensions": {
      "height" : 2.1,
      "length" : 12.5,
      "weight": 5000
    }
  },
  "stegosaurus": {
    "name": "stego",
    "work": "play",
    "dimensions": {
      "height" : 4,
      "length" : 9,
      "weight" : 2500
    }
  }
}

我如何在 Firebase 的 Android 类中表示此结构以从 DataSnapshot.getValue(DinosaurFacts.class) 进行转换?

name, work 都是用String表示的,但是类中的“dimensions”集合怎么表示呢?

另外,如何从 DataSnapshot 中获取有关高度和体重的数据值?

编辑 我可以让各个元素在快照中循环,但我试图找到如何在类结构中表示数据。

for(DataSnapshot child : dataSnapshot.getChildren()) {

                Log.d("hz-key:", child.getKey().toString());
                Log.d("hz-val:", child.getValue().toString());
            }

最佳答案

表示此结构的 JavaBean 类是:

public static class DinosaurFacts {
    String name;
    String work;
    Dimensions dimensions;

    public String getName() {
        return name;
    }

    public String getWork() {
        return work;
    }

    public Dimensions getDimensions() {
        return dimensions;
    }

    public class Dimensions {
        double height;
        long weight;
        double length;

        public double getHeight() {
            return height;
        }

        public long getWeight() {
            return weight;
        }

        public double getLength() {
            return length;
        }
    }
}

然后你可以阅读恐龙:

DinosaurFacts dino = dinoSnapshot.getValue(DinosaurFacts.class);

并访问维度,例如:

dino.getDimensions().getWeight();

关于android - 如何在 Firebase 类中表示嵌套数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33010429/

相关文章:

java - 加载应用程序时间太长

android - Quickblox android 推送通知不起作用

java - 火力地堡安卓 : Display data randomly

ios - 基于邮件获取 Firebase 记录

swift - 删除 Firebase 数据时遇到更新 TableView 行的麻烦

android - 7x5 网格,方形元素可见,无需滚动

android - 如何从 onClickListener 的方法中抛出异常

android - 无法将 Apple 客户端 ID 添加到 Firebase 邀请 Android 上的 Intent

ios - 从两个不同构建中的一个数组中检索项目返回不一致的结果

android - Firebase 数据库更新数据删除旧子项