Java 在firebase数据库中按日期排序
我有一个如下所示的数据库:Java 在firebase数据库中按日期排序,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我有一个如下所示的数据库: { firstitem : { "name" : "first_item_name", "date" : "29/11/2018", "user" : "random user", "url" : "My Url", "tag" : "firstitem" }, seco
{
firstitem : {
"name" : "first_item_name",
"date" : "29/11/2018",
"user" : "random user",
"url" : "My Url",
"tag" : "firstitem"
},
seconditem : {
"name" : "second_item_name",
"date" : "20/11/2018"
"user" : "another user",
"url" : "a url",
"tag" : "seconditem"
},
thirditem : {
"name" : "third_item_name",
"date" : "20/11/2017"
"user" : "another user",
"url" : "a url",
"tag" : "thirditem"
}
ect....
}
我希望能够有一个选项来排序的日期,从最新开始,并下降到最旧的。我怎样才能做到这一点
这是我目前调用firebase字符串的方法:
if (dataSnapshot.exists()) {
Log.i("Event", "Added");
Firebase_Strings dlStrings = dataSnapshot.getValue(Firebase_Strings.class);
p9p_strings.DOCUMENTARY_NAME.add(dlStrings.name);
p9p_strings.DOCUMENTARY_SYNOPSIS.add(dlStrings.about);
p9p_strings.DOCUMENTARY_URL.add(dlStrings.url);
p9p_strings.DOCUMENTARY_UPLOADED.add(dlStrings.date);
p9p_strings.DOCUMENTARY_TAG.add(dlStrings.tag);
如果您将日期存储为字符串
“29/11/2018”
,而不是时间戳,则无法按日期对项目进行排序
要解决此问题,应将date
属性的类型更改为number
您可以选择如何添加和获取时间戳。您的日期排序格式不是很好。考虑存储一个整数时间戳而不是格式化的字符串。将所有数据都放到ARARYLIST中,然后使用提供比较表的集合排序,