无法从Firebase读取列表,预计地图

时间:2016-07-12 09:48:11

标签: android json firebase firebase-realtime-database json-deserialization

我有一个连接到Firebase云数据库的Android应用。对于给定用户,数据库存储Reservation对象列表。

我遵循Google的指南将预订存储到数据库中:

private void addReservation() {
    reservations = users.child(mReservation.getUserId()).child(KEY_RESERVATIONS);
    reservations.push().setValue(mReservation);
}

推送成功保存,给定用户的JSON数据格式如下:

 {
      "email" : "fake.email@fake.com",
      "reservations" : {
        "-KMTRX1cOAu3v_pN1GHs" : {
          "date" : "01/07/2018",
          "formattedDate" : "01//0/7/2018",
          "formattedSlot" : "10:/0",
          "massage" : "Back massage",
          "price" : 60,
          "promoCode" : false,
          "slot" : "10:00",
          "userId" : "YD7uQGwApLe5Xi90BSGQhcOqSk32"
        }
      }
    }

当我启动" ReservationsActivity"时,我使用此功能从数据库加载预订列表:

        if (userHasReservations(dataSnapshot)) {
            DataSnapshot snapshot = dataSnapshot.child(currentUser.getUid()).child(KEY_RESERVATIONS);

            List<Reservation> userReservations = snapshot
                    .getValue(new GenericTypeIndicator<ArrayList<Reservation>>() {});
  }

但是我收到了数据库错误。该函数需要一张地图:

DatabaseException: Expected a List while deserializing, but got a class java.util.HashMap

根据Google的文档,如果使用推送方法存储元素,则可以将其作为列表进行检索。但是,我一直遇到这个错误。

你能帮我解决这个问题吗?

非常感谢。

0 个答案:

没有答案