【发布时间】:2017-05-15 21:37:13
【问题描述】:
我有一个 FireBase 后端,它有一个类似这样的时间戳...有许多这样的节点是已推送的对象。
每个节点都有一个使用 ServerValue.TIMESTAMP 设置的时间戳。
在数据模型类中设置服务器时间
private HashMap<String, Object> timestampCreated;
//set time stamp in constructor when new obj is created
public DataModel(...){
// TIME STAMP
HashMap<String, Object> timestampCreatedObj = new HashMap<String, Object>();
timestampCreatedObj.put("date", ServerValue.TIMESTAMP);
this.timestampCreated = timestampCreatedObj;
}
//getting timestamp
public HashMap<String, Object> getTimestampCreated(){
return timestampCreated;
}
@Exclude
public long getTimestampCreatedLong(){
return (long)timestampCreated.get("date");
}
以上所有内容都可以很好地插入数据库,我可以检索时间。
在另一个类中,我想在 FirebaseListAdapter 上设置查询 设置查询让我们说显示最近 5 天的项目。
long daysInpast= new Date().getTime() - TimeUnit.MILLISECONDS.convert(5, TimeUnit.DAYS);
然后我设置查询
Query queryDays= mDatabaseQuery.child("timestampCreated").orderByChild("date").endAt(daysInpast);
final FirebaseListAdapter<myData> adapterQuery = new FirebaseListAdapter<myData>
(getActivity(), myData.class, R.layout.list_item, queryDays) {//do stuff}
我不确定我的查询,我的列表返回空,如果我只使用我的 FirebaseListAdapter 而没有通过数据库引用的查询,我的列表将按预期填充。我怀疑它的数据是如何布局的?事实上,我的时间抽头位于子节点中,这是个问题吗?
我尝试过使用
Query queryDays= mDatabaseQuery.orderByChild("date").endAt(daysInpast);
也不过没用
任何帮助表示赞赏
【问题讨论】:
标签: android firebase firebase-realtime-database firebaseui