我有這個字段的記錄:火力地堡使用ENDAT如果時間戳字段
age: 25
timestamp: 1484089199472
該記錄由插入:
@Exclude
public Map<String, Object> toMap() {
HashMap<String, Object> result = new HashMap<>();
result.put("age", age);
result.put("timestamp", ServerValue.TIMESTAMP);
return result;
}
如果我使用endAt(24,"age")
比其工作良好,該項目是不可見的。
但是,如果我想在時間戳endAt使用它不工作。例如: endAt(100000,"timestamp")
並且該行保持可見狀態。 爲什麼?
這是檢查類型?
如何過濾?
我沒有任何想法! :( 我希望有人能幫助我 感謝
編輯:!
查詢爲得到實際日行
@Override
public Query getQuery(final DatabaseReference databaseReference) {
Date endTime = new Date();
endTime.setHours(23);
endTime.setMinutes(59);
endTime.setSeconds(59);
return databaseReference
.child("toplist")
.endAt(endTime.getTime(),"timestamp")
.orderByChild("point")
.limitToFirst(50);
}
數據
@IgnoreExtraProperties
public class Rank{
public int number;
public String username;
public int point;
// [START post_to_map]
@Exclude
public Map<String, Object> toMap() {
HashMap<String, Object> result = new HashMap<>();
result.put("number", number);
result.put("username", username);
result.put("point", point);
result.put("timestamp", ServerValue.TIMESTAMP);
return result;
}
}
添加新的隨機item
private void writeNewRandomTopListItem() {
Random rnd = new Random();
Rank item = new Rank();
item.username = "Test " + rnd.nextInt(20000);
item.point = rnd.nextInt(2000000);
mDatabase.child("toplist").push().setValue(item.toMap());
}
適配器
Query postsQuery = getQuery(mDatabase);
mAdapter = new FirebaseRecyclerAdapter<Rank, PostViewHolder>(Rank.class, R.layout.item_post, PostViewHolder.class, postsQuery) {
@Override
protected void populateViewHolder(final PostViewHolder viewHolder, final Rank model, final int position) {
viewHolder.bindToPost(model,position);
}
};
mRecycler.setAdapter(mAdapter);
...
toplist
-Ka8m3hN-vRjPZhKH3Rt
number: 0
point: 1269424
timestamp: 148407253222471
username: "Test 19727"
-Ka8m3hWRIQKL7faNqUS
number: 0
point: 1398061
timestamp: 1484075322472
username: "Test 17679"
您可以提供更高級別的數據庫數據以及更多關於您所調用的確切查詢的更多代碼嗎?如果你願意,我很確定我能幫助你。 – hotrod
謝謝你的幫助。我編輯了我的帖子。 – ketom