如何在Firebase中的对象内检索嵌套列表对象

时间:2017-06-11 14:37:00

标签: android firebase firebase-realtime-database

我正在尝试获取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.
             }

提前致谢

2 个答案:

答案 0 :(得分:1)

在模型车中尝试以下代码,

public Map<String, User> users;

答案 1 :(得分:0)

您需要使用Map代替List。因此,为了解决问题,您需要在模型类中进行更改。要回复用户,请使用:car.getUsers()。这行代码返回Map。迭代地图并获得用户。

希望它有所帮助。