Android Firebase将项目动态添加到阵列

Android Firebase将项目动态添加到阵列,android,list,firebase,firebase-realtime-database,Android,List,Firebase,Firebase Realtime Database,我正在尝试使用Firebase for Android发表一些评论。 我有一个问题,有没有办法向数组中添加新项 例如,如果我有这样的对象 如果我试图推动,它会将其转换为地图 我不想每次都覆盖这个对象,因为我会有多用户支持,而且它会在某个时候失败 我试图将其作为一个列表来执行,以避免为我的模型创建DataTransferObject,并支持使用firebase进行自动解析 谢谢!事实上,如果没有创意,我们将创建地图 我的对象模型: public class Company implements

我正在尝试使用Firebase for Android发表一些评论。 我有一个问题,有没有办法向数组中添加新项

例如,如果我有这样的对象

如果我试图推动,它会将其转换为地图

我不想每次都覆盖这个对象,因为我会有多用户支持,而且它会在某个时候失败

我试图将其作为一个列表来执行,以避免为我的模型创建DataTransferObject,并支持使用firebase进行自动解析

谢谢!事实上,如果没有创意,我们将创建地图

我的对象模型:

public class Company implements Parcelable {
    private String id;
    private String name;
    private String description;
    private List<Comment> comments;
}

这就是它的工作原理,看看下面的例子,我已经将“0”存储为我的第一个commentID,“1”存储为我的第二个commentID。如您所见,我将lastCommentID存储为列表中最后一条注释的commentID

{
  "comments": {
    "0": {
      "text": "mycomment",
      "time": "142351516"
    },
    "1": {
      "text": "secondcomment",
      "time": "153426564"
    }
  }

 "lastCommentId": "1"
}
因此,每当您想向firebase添加新注释时,您必须首先以字符串形式检索lastCommentID,并将其转换为整数(例如1),然后将1添加到值(例如2),以便在保存下一条注释时不会覆盖上一版本

请注意,每次向数据库添加注释时,都必须替换lastCommentID

{
  "comments": {
    "0": {
      "text": "mycomment",
      "time": "142351516"
    },
    "1": {
      "text": "secondcomment",
      "time": "153426564"
    },
    "2": {
      "text": "thirdcomment",
      "time": "153426564"
    }
  }

 "lastCommentId": "2"
}

您不需要在Firebase中编写模型类,您可以通过Jackson将JSON解析为Java对象,并将其推送到Firebase中

您可以使用Jackson将JSON解析为Java对象

。例如,您可以获得:Object、List、Hashmap、Integer、String、, 等等,没有POJO课程


要了解更多信息,请访问

添加代码行。请参阅此问题的评论:我想Thomas特别提到了此评论:谢谢,问题是我想在Firebase现有列表中添加新对象(评论)。抱歉,我的错,误解了情况。我看你已经找到了答案。为什么要问一个你已经知道答案的问题呢?Umar,对不起,这个代码是用来推送对象的,但正如我在第二个屏幕截图上显示的,它会将列表转换为地图,我正在尝试将新项目插入列表,所以这不是我要找的。只是添加了它来展示我已经尝试过的东西。所以我还在寻找答案所以你想保存下一条id为列表的评论?比如0,1,2,3,4等等,比如id?但是你不想使用推送功能?这就是你想解释的吗?是的,有点。Push函数为新项生成字符串id,因此此数组成为映射。但我阅读了文档,似乎firebase不支持我计划使用的阵列。
{
  "comments": {
    "0": {
      "text": "mycomment",
      "time": "142351516"
    },
    "1": {
      "text": "secondcomment",
      "time": "153426564"
    },
    "2": {
      "text": "thirdcomment",
      "time": "153426564"
    }
  }

 "lastCommentId": "2"
}