如何在 Firebase 中表示嵌套数据 class
How to represent nested data in Firebase class
取自 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
}
}
}
如何在 Android Class 中表示此结构以便 Firebase 从 DataSnapshot.getValue(DinosaurFacts.class)
投射?
name, work 表示为字符串,但是class中的"dimensions"集合如何表示?
另外,如何从 DataSnapshot
中获取有关身高和体重的数据值?
编辑
我可以让各个元素在快照中循环,但我试图找到如何在 class 结构中表示数据。
for(DataSnapshot child : dataSnapshot.getChildren()) {
Log.d("hz-key:", child.getKey().toString());
Log.d("hz-val:", child.getValue().toString());
}
表示此结构的 JavaBean class 是:
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();
我遵循了 Frank 的回答,但我收到一条错误消息:
subclass needs an empty constructor
虽然我有一个。
解法:
为其创建一个新的(外部)class。
这是我的例子:
第一 Class:
public class Event {
private String name;
private Place place;
}
子Class:
public class Place {
private String name;
private Location location;
}
子Class的子:
public class Location {
private String city;
private Double longitude, latitude;
}
取自 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
}
}
}
如何在 Android Class 中表示此结构以便 Firebase 从 DataSnapshot.getValue(DinosaurFacts.class)
投射?
name, work 表示为字符串,但是class中的"dimensions"集合如何表示?
另外,如何从 DataSnapshot
中获取有关身高和体重的数据值?
编辑 我可以让各个元素在快照中循环,但我试图找到如何在 class 结构中表示数据。
for(DataSnapshot child : dataSnapshot.getChildren()) {
Log.d("hz-key:", child.getKey().toString());
Log.d("hz-val:", child.getValue().toString());
}
表示此结构的 JavaBean class 是:
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();
我遵循了 Frank 的回答,但我收到一条错误消息:
subclass needs an empty constructor
虽然我有一个。
解法:
为其创建一个新的(外部)class。
这是我的例子:
第一 Class:
public class Event {
private String name;
private Place place;
}
子Class:
public class Place {
private String name;
private Location location;
}
子Class的子:
public class Location {
private String city;
private Double longitude, latitude;
}