根据我的Android应用程序中的日期对某些数据进行排序。它存储如下:
String key = String.valueOf(date.getTime());
年,月和日只包含整数。这不能保存到Firebase数据库,因为它是一个具有非字符串键的映射。我想把它弄平并把它变成Map。对数据结构的巨大妥协,因为它允许前一个数据不允许(也不应该)允许的数据。但是,Date不是String。我试过这样的事情:
Map<String, Stuff>
然后使用数据结构:
{{1}}
也不起作用,它似乎使用了String在Firebase数据库中不能拥有的非法字符。那么,我将如何进行这项工作呢?非常感谢帮助。
答案 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
中找到有关此内容的格式信息