从Firebase读取到我的自定义对象

时间:2017-07-16 10:42:28

标签: java android firebase firebase-realtime-database

我在我的firebase中写了一个地图,从String(用户ID)到Data:

Data {
  String name;
  String surname;
  Map<String, String> mapSportToRate;
}

firebase看起来像:

 - 12345
    - name  "Robin"
    - surname  "Williams"
    - mapSportToRate
         - football    "10"
         - basketball  "5"

- 23142
    - name  "Britney"
    - surname  "Spears"
    - mapSportToRate
         - football    "1"
         - basketball  "4"

写入Firebase我这样做了:

Map<String, Data> mapUserIdToData = new HashMap<>();
mapUserIdToData.put("12345", new Data("Robin", "Williams", "10", "5"));
mapUserIdToData.put("23142", new Data("Britney", "Spears", "1", "4"));
dataSnapshot.getRef().setValue(mapUserIdToData);

我想从firebase读取我用于setValue的相同成员类型。我该怎么办?

例如:

@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    Map<String, Data> mapUserIdToData = (HashMap<String, Data>) dataSnapshot.getValue();
    ...

问题是:当我将鼠标停留在mapUserIdToData&#39;时,我看到值不是Data类型但是HashMap 所以我不能够通过mapUserIdToData.get(&#34; 12345&#34;)来访问它的变量。名称就像我想要的那样。

我不想通过HashMap获取名称,例如mapUserIdToData.get(&#34; 12345&#34;)。get(&#34; name&#34;)。

那么如何在我的自定义对象中读取用于将数据设置到firebase中的参数?

0 个答案:

没有答案