我正在尝试获取Firebase中一个对象内的嵌套列表对象的数据。我试图搜索一些类似的问题,我找不到任何类似的问题。我花了很多时间尝试获取此对象,但我总是得到空值,但我可以在数据快照中看到整个对象都存在。
我可以获取Car对象,但是我无法获取此对象中的用户列表。
这是我在Firebase中的数据库外观:
Car
-KloSsiZiz6DfvBhp9dk
- timestamp: 1496602610880
* users
- QsqgxinR4TabETV5DaAAg4fW9fE2
- k2L3B6rV0NTpLQsMfWhw2MrTZl42
- displayName: "bob"
- email: "t@t.com"
- guestType: 2
- uid: "k2L3B6rV0NTpLQsMfWhw2MrTZl42"
- m5PfDgvbGrM9IXZKgdO04TTvYMO2
- qXkogeDvLGPlP7LNFrWnAgbVzaQ2
- r2T34mSC0DggDejFxcb91SjqFVq1
- date: "2017-08-04T02:00:00Z"
我的模型车:
private List <User> users;
private Object timestamp;
private String date;
public Car(){}
//Getter and setter
我的模特用户;
private String displayName;
private String email;
private String photoUrl;
private int guestType;
private String uid;
public User() {}
//Getter and setter
这是我拥有Car对象的方式
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Car car= (Car) dataSnapshot.getValue(Car.class);
//At this point, I can get the values inside the car object, but if I try to do car.getUsers() I get a null.
}
提前致谢
答案 0 :(得分:1)
在模型车中尝试以下代码,
public Map<String, User> users;
答案 1 :(得分:0)
您需要使用Map
代替List
。因此,为了解决问题,您需要在模型类中进行更改。要回复用户,请使用:car.getUsers()
。这行代码返回Map
。迭代地图并获得用户。
希望它有所帮助。