DATE以String格式存储时如何使用orderBy

时间:2017-05-02 17:27:19

标签: android date firebase firebase-realtime-database

使用Firebase,日期在字符串格式的Firebase数据库中存储为:dd / MM / yyyy。
使用orderBy按日期订购我的参赛作品时,我没有得到理想的结果。

def three_digit_format(n)
  stringed = n.to_s
  if stringed.size > 2
    return stringed
  elsif stringed.size > 1
    return "0" + stringed
  else
    return "00" + stringed
  end
end
puts three_digit_format(9)
# 009

这是我用来显示条目的内容。它工作正常。但问题是日期没有正确排序。

enter image description here

因此,如果今天是02/05/17,上面图片中带日期的条目将不会显示,因为在比较这两个字符串时,图像中的字符串会更小。

如何纠正?请帮忙!!

1 个答案:

答案 0 :(得分:0)

最佳做法是将您的数据保存为TIMESTAMP,如下所示:ServerValue.TIMESTAMP而不是字符串。

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Map map = new HashMap();
map.put("time", ServerValue.TIMESTAMP);
ref.child("yourNode").updateChildren(map);

为了获得数据,我建议你使用这种方法:

public static String getTimeDate(long timeStamp){
    try{
        DateFormat dateFormat = getDateTimeInstance();
        Date netDate = (new Date(timeStamp));
        return dateFormat.format(netDate);
    } catch(Exception e) {
        return "date";
    }
}

要解决您的问题,您只需要根据正确的DatabaseReferenceorderByValue("timestamp");

创建查询

希望它有所帮助。