我正在尝试将Spot对象写入Firebase数据库。一切顺利,直到我添加了一个ArrayList<>属性为Spot类。现在我不能再将Spot对象写入数据库,当我尝试时,我的应用程序只是停止。没有崩溃,所以我在日志中没有得到任何错误反馈:/
这是我的写作代码:
public void writeSpot(Spot spot, AddSpotContract.RequiredModelOps subscriber) {
Log.i("DBGR", "writing spot");
getReference().child(spot.getId()).setValue(spot);
Log.i("DBGR", "what is going on??");//if Spot object has an ArrayList<Uri> attribute, this is never reached
subscriber.onSpotWritten();
}
所以有人知道为什么我不能用ArrayList&lt;&gt;写一个对象属性到数据库?我已尝试使用数组,但不支持(至少在这种情况下,我得到反馈告诉我)。
非常感谢:)
编辑:我找到了答案。它实际上与ArrayList无关,问题来自于尝试将Uri写入数据库,因为它不是受支持的类(参见error "java.lang.StackOverflowError:" when try to save object in Firebase Database)
答案 0 :(得分:1)
要将数据对象写入Firebase database
,而不是使用List
,请使用Map
。如果您还有Map
字段,请将其更改为Map
。
希望它有所帮助。