Firebase列表与地图问题

时间:2016-12-28 23:10:49

标签: java android firebase firebase-realtime-database

我遇到Firebase android实现的问题。 我有一个HashMap类。 在Firebase中存储课程时,一切都很好。 但是当HashMap的键是数字而不是firebase有时会错误存储列表的hashmap并抛出此异常:

  

com.google.firebase.database.DatabaseException:在反序列化时期望一个Map,但是得到了一个类java.util.ArrayList

最简单的重现方法是使用键' 1'将单个对象放在hashmap中。

是否有解决此问题的方法(除了使用Firebase会发现吸引人的密钥)?

这是Firebase实施中的错误吗?

修改

这是我最简单的例子:

public void setFirebase(){
    fb = FirebaseDatabase.getInstance().getReferenceFromUrl(c.getString(R.string.firebase_base_url));
    fb.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            ds = dataSnapshot;
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
}

public void writeTestObject(){
    testObject to = new testObject();
    to.testMap =  new HashMap<>();
    to.testMap.put("1","One");
    fb.child("Test").setValue(to);
}

public void readTestObject(){
    testObject res = ds.child("Test").getValue(testObject.class);
}

public void run(){
    setFirebase();
    writeTestObject();
    readTestObject();
}

import java.util.Map;
public class testObject {
    public Map<String, String> testMap;
}

readTestObject() 函数会抛出上述异常。

0 个答案:

没有答案