3
我在Android上使用Firebase保存地图字段的POJO时发现,如果该地图在该地图的值属性中包含空值,则忽略整个字段。Android Firebase - 为什么忽略地图字段中的空值
解决方法很简单(非空值将导致地图保存成功),但我想明白为什么会这样?
模型
public class Game {
private String owner;
private Map<String, String> characters;
public Game() {
// empty constructor for Firebase
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public Map<String, String> getCharacters() {
return characters;
}
public void setCharacters(Map<String, String> characters) {
this.characters = characters;
}
}
调用代码
final Game game = new Game();
game.setOwner("owner");
game.setCharacters(new HashMap<String, String>());
game.getCharacters().put("Bugs Bunny", null);
game.getCharacters().put("Batman", null);
final Firebase ref = new Firebase("<firebaseurl>/test/" + System.currentTimeMillis());
ref.setValue(game);
在火力地堡
{
"1456421340781": {
"owner": "owner"
}
}
谢谢!看起来我没有足够好的RTFM,从那以后发现“注意,将null传递给setValue()将删除指定位置的数据。”和“请注意,在地图中传递null将删除数据库中该位置的数据。”在https://www.firebase.com/docs/android/guide/saving-data.html – keith
很好。我确实在寻找最后一个答案,但没有成功。找到它。我会从我的答案中删除关于它未被记录为Android的一点。 –