Android 根据时间戳从firebase数据库获取数据
如何根据时间戳检索数据,以便在recyclerview中首先显示具有最新时间戳的数据 我的代码是:Android 根据时间戳从firebase数据库获取数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,如何根据时间戳检索数据,以便在recyclerview中首先显示具有最新时间戳的数据 我的代码是: { "YoZSiyACIqSBNXU7XKv56olKOv92": { "-KpJVrAUg9yCPNptU-jY": { "cmt": "hello", "ids": "-KpJVrAIVocWckK-vEd2", "imgid": "-KpJT3Ygd8U3yf9nN-Yr"
{
"YoZSiyACIqSBNXU7XKv56olKOv92":
{
"-KpJVrAUg9yCPNptU-jY":
{
"cmt": "hello",
"ids": "-KpJVrAIVocWckK-vEd2",
"imgid": "-KpJT3Ygd8U3yf9nN-Yr",
"timestamp": "1500361488354",
"userid": "surabhipaul.gkp2008@gmail.com"
},
"-KpoR8S99tMm1fDmlwaR":
{
"cmt": "really",
"ids": "-KpoR8S99tMm1fDmlwaQ",
"imgid": "-KpJT3Ygd8U3yf9nN-Y,
"timestamp": "1500897125323",
"userid": "surabhipaul.gkp2008@gmail.com"
}
},
"pTMeNLkIHqPmFOCPQcK2yjImdmi2":
{
"-KpU8HxLfohEtXIGJzi9":
{
"cmt": "hie",
"ids": "-KpU8HxLfohEtXIGJzi8",
"imgid": "-KpJT3Ygd8U3yf9nN-Yr",
"timestamp": "1500539860639",
"userid": "sanchisrivastava123@gmail.com"
},
"-KpoQo6615Y-U-DQ_Le1":
{
"cmt": "nice",
"ids": "-KpoQo6-flNhGxZd4V19",
"imgid": "-KpJT3Ygd8U3yf9nN-Yr",
"timestamp": "1500897037891",
"userid": "sanchisrivastava123@gmail.com"
}
}
}
解决方案相当棘手,您需要将push键更改为timestamp*-1 例如:
public class CommentData {
String cmt;
String userid;
String comid;
String nos;
public String getNos() {
return nos;
}
public void setNos(String nos) {
this.nos = nos;
}
public String getComid() {
return comid;
}
public void setComid(String comid) {
this.comid = comid;
}
public String getCmt() {
return cmt;
}
public void setCmt(String cmt) {
this.cmt = cmt;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
}
Collections.sort(列表,新比较器(){
@凌驾
公共整数比较(CommentData o1、CommentData o2){
返回Long.compare(Long.parseLong(o2.time)),
Long.parseLong(o1.time));
}
});
您是否从firebase获得了列表数据列表?您需要在时间戳字段上对列表进行排序您是否询问如何通过递减时间戳检索项目。如果是,请参阅感谢Akilesh Patil。排序解决了问题
public class CommentData {
String cmt;
String userid;
String comid;
String nos;
public String getNos() {
return nos;
}
public void setNos(String nos) {
this.nos = nos;
}
public String getComid() {
return comid;
}
public void setComid(String comid) {
this.comid = comid;
}
public String getCmt() {
return cmt;
}
public void setCmt(String cmt) {
this.cmt = cmt;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
}
"YoZSiyACIqSBNXU7XKv56olKOv92":
{
"-1500897125323":
{
"cmt": "really",
"ids": "-KpoR8S99tMm1fDmlwaQ",
"imgid": "-KpJT3Ygd8U3yf9nN-Y,
"timestamp": "1500897125323",
"userid": "surabhipaul.gkp2008@gmail.com"
},
"-1500361488354":
{
"cmt": "hello",
"ids": "-KpJVrAIVocWckK-vEd2",
"imgid": "-KpJT3Ygd8U3yf9nN-Yr",
"timestamp": "1500361488354",
"userid": "surabhipaul.gkp2008@gmail.com"
}
}
Collections.sort(list, new Comparator<CommentData>() {
@Override
public int compare(CommentData o1, CommentData o2) {
return Long.compare(Long.parseLong(o2.time),
Long.parseLong(o1.time));
}
});