使用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
这是我用来显示条目的内容。它工作正常。但问题是日期没有正确排序。
因此,如果今天是02/05/17,上面图片中带日期的条目将不会显示,因为在比较这两个字符串时,图像中的字符串会更小。
如何纠正?请帮忙!!
答案 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";
}
}
要解决您的问题,您只需要根据正确的DatabaseReference
和orderByValue("timestamp");
希望它有所帮助。