在Firebase数据库中保存日期

时间:2016-09-19 12:00:48

标签: android firebase firebase-realtime-database

根据我的Android应用程序中的日期对某些数据进行排序。它存储如下:

String key = String.valueOf(date.getTime());

年,月和日只包含整数。这不能保存到Firebase数据库,因为它是一个具有非字符串键的映射。我想把它弄平并把它变成Map。对数据结构的巨大妥协,因为它允许前一个数据不允许(也不应该)允许的数据。但是,Date不是String。我试过这样的事情:

Map<String, Stuff>

然后使用数据结构:

{{1}}

也不起作用,它似乎使用了String在Firebase数据库中不能拥有的非法字符。那么,我将如何进行这项工作呢?非常感谢帮助。

2 个答案:

答案 0 :(得分:8)

我建议你创建一个如下所示的结构:

...
date:{
   day:1,
   month:04,
   year:2016,
   timestamp:12345679979 //in milliseconds
}

通过这种方式,您可以轻松索引安全规则中的时间戳,通过Child执行查询并使用start At和endAt方法使用过滤器,您可以在其中定义定义范围的时间戳

答案 1 :(得分:1)

如果您使用日期,则可以将其转换为带有

的字符串
String date = new SimpleDateFormat("dd/MM/yyyy").format(dateObject);

使用dateObject是您正在使用的日期和

"dd/MM/yyyy"

是日期的格式。您可以在oracle Customizing Formats tutorial page

中找到有关此内容的格式信息