Firebase 使用 Map 属性保存对象

神经网络

我想知道是否可以保存包含 Map 属性的对象,如下所示:

public class Item {
    public String id;
    public String name;
    public double price;
    public Map<String, Adds> adds;
...

Adds 是另一个自定义类,其中声明了所有 getter/setter,与 Item 相同。我可以使用 setvalue 直接保存添加映射,但是当我尝试 setvalue() 时,我不断收到以下错误。

引起:com.google.firebase.database.DatabaseException:不支持具有非字符串键的地图

DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("test").setValue(p);

这就是我正在尝试的,当然 p 是 Item 的实例。有没有办法像这样直接保存对象?或者我需要为地图做另一个设定值吗?

这是2个班级

public class Item {
public String id;
public String name;
public double price;
public Map<String, Adds> adds;

public Item() {

}

public Item(String name, double price) {
    this.name = name;
    this.price = price;
    adds = new HashMap<>();
}

@Exclude
public void addAdds(Adds adds){
    this.adds.put(adds.getId(), adds);
}

@Exclude
public void removeAdds(Adds adds){
    this.adds.remove(adds);
}

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public double getPrice() {
    return price;
}

@Exclude
public void setPrice(double price) {
    this.price = price;
}

public Map<String, Adds> getAdds() {
    return adds;
}

public void setAdds(HashMap<String, Adds> adds) {
    this.adds = adds;
}

}

这是添加

public class Adds {
public String id;
public String name;
public double plus;
public double minus;
private boolean primary = false;


public Adds() {

}

public Adds(String name) {

}

public Adds(String id, String name, double plus, double minus) {

    this.id = id;
    this.name = name;
    this.plus = plus;
    this.minus = minus;
}


public String getId() {
    return id;
}

public String getName() {
    return name;
}

public double getPlus() {
    return plus;
}

public double getMinus() {
    return minus;
}

private boolean isPrimary() {
    return primary;
}

public void setName(String name) {
    this.name = name;
}

@Override
public String toString() {
    return "Adds{" +
            "id='" + id + '\'' +
            ", name='" + name + '\'' +
            ", plus=" + plus +
            ", minus=" + minus +
            ", primary=" + primary +
            '}';
}
}
彼得·Z
@Test
public void myFirebaseTest2(){
    Adds adds = new Adds();
    adds.setName("adds test name");

    Item item = new Item();
    item.adds = new HashMap<>();
    //item.adds.put(null, adds);
    item.adds.put("uniquekey", adds);

    DatabaseReference mDatabase;
    mDatabase = FirebaseDatabase.getInstance().getReference();
    mDatabase.child("test").setValue(item);
}

注释/取消注释测试方法的第 5 行重现了 DatabaseException 并解释了问题:

您的“添加”映射中的键之一很可能为空(未设置)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

保存新属性将覆盖Firebase对象

来自分类Dev

firebase对象大小:如何使用$忽略属性?

来自分类Dev

使用.map()呈现JS对象的属性值和属性名称

来自分类Dev

如何使用对象属性保存pdf

来自分类Dev

使用map和setattr函数动态设置对象属性

来自分类Dev

ReactJS不能使用map()显示对象属性

来自分类Dev

当对象包含ng-repetate时,如何使用angularFire保存Firebase对象$ asArray()

来自分类Dev

从 Firebase Firestore 获取数据时如何使用嵌套的 map() 函数

来自分类Dev

PetaPoco / NPoco-使用(子)集合属性保存对象

来自分类Dev

在 Django 中,如何使用 datetime 属性保存查询对象?

来自分类Dev

如何在TypeScript中从Firebase获取Map对象

来自分类Dev

Java Map:使用值对象的属性作为键,不好的做法吗?

来自分类Dev

在Swift中使用属性和Map过滤自定义对象的数组

来自分类Dev

Javascript:使用map在数组中的每个对象中打印属性“名称”和“值”

来自分类Dev

如何使用 Option.map 做空条件?F# 如何获取空对象的属性?漏洞?

来自分类Dev

使用 map 进行模块属性累加:true

来自分类Dev

使用.map()迭代对象React中的数组

来自分类Dev

使用.map()而不是.forEach创建对象

来自分类Dev

`Map`使用BabelJS返回空对象

来自分类Dev

使用 map 和 reduce 获取对象数组

来自分类Dev

使用REST将数据保存到Firebase

来自分类Dev

保存Firebase存储视频并使用AVPlayerViewController播放

来自分类Dev

保存Firebase存储视频并使用AVPlayerViewController播放

来自分类Dev

如何使用angularfire更改Firebase数组的属性?

来自分类Dev

在Swift中使用Firebase获取值属性

来自分类Dev

使用Value()方法从Firebase检索对象

来自分类Dev

使用未保存的相关对象保存对象

来自分类Dev

Firebase:$保存到尚未创建的对象

来自分类Dev

在Android中将JSON对象保存到Firebase

Related 相关文章

  1. 1

    保存新属性将覆盖Firebase对象

  2. 2

    firebase对象大小:如何使用$忽略属性?

  3. 3

    使用.map()呈现JS对象的属性值和属性名称

  4. 4

    如何使用对象属性保存pdf

  5. 5

    使用map和setattr函数动态设置对象属性

  6. 6

    ReactJS不能使用map()显示对象属性

  7. 7

    当对象包含ng-repetate时,如何使用angularFire保存Firebase对象$ asArray()

  8. 8

    从 Firebase Firestore 获取数据时如何使用嵌套的 map() 函数

  9. 9

    PetaPoco / NPoco-使用(子)集合属性保存对象

  10. 10

    在 Django 中,如何使用 datetime 属性保存查询对象?

  11. 11

    如何在TypeScript中从Firebase获取Map对象

  12. 12

    Java Map:使用值对象的属性作为键,不好的做法吗?

  13. 13

    在Swift中使用属性和Map过滤自定义对象的数组

  14. 14

    Javascript:使用map在数组中的每个对象中打印属性“名称”和“值”

  15. 15

    如何使用 Option.map 做空条件?F# 如何获取空对象的属性?漏洞?

  16. 16

    使用 map 进行模块属性累加:true

  17. 17

    使用.map()迭代对象React中的数组

  18. 18

    使用.map()而不是.forEach创建对象

  19. 19

    `Map`使用BabelJS返回空对象

  20. 20

    使用 map 和 reduce 获取对象数组

  21. 21

    使用REST将数据保存到Firebase

  22. 22

    保存Firebase存储视频并使用AVPlayerViewController播放

  23. 23

    保存Firebase存储视频并使用AVPlayerViewController播放

  24. 24

    如何使用angularfire更改Firebase数组的属性?

  25. 25

    在Swift中使用Firebase获取值属性

  26. 26

    使用Value()方法从Firebase检索对象

  27. 27

    使用未保存的相关对象保存对象

  28. 28

    Firebase:$保存到尚未创建的对象

  29. 29

    在Android中将JSON对象保存到Firebase

热门标签

归档