0
我有一個供稿,其中包含當前由「updatedAt」訂購的帖子。我的初衷是將帖子推到最後回覆的feed頂部(我通過在用戶離開評論時在每篇帖子中遞增「replyCount」字段來完成此操作),但並不完全瞭解另一個字段,「likeCount」也會在用戶的「喜歡」一個帖子時更新。我仍然希望將那些最近「回覆」到帖子頂部的帖子推送到頂部,但不要以與推薦帖子相關的怪異用戶體驗行爲爲代價。我不確定如何區分這兩者。訂購一個ParseQuery的日期只有一個字段已更新
我應該在這裏做什麼?我可以添加另一個名爲「lastReplyCountTime」的列,然後根據該列進行排序嗎?也許將所有帖子的lastReplyCountTime設置爲保存到數據庫的當前時間,然後只在帖子收到回覆時更新該值?
String groupId = ParseUser.getCurrentUser().getString("groupId");
ParseQuery<ParseObject> query = new ParseQuery<>(ParseConstants.CLASS_POST);
query.whereContains(ParseConstants.KEY_GROUP_ID, groupId);
/*query.addDescendingOrder(ParseConstants.KEY_CREATED_AT);*/
query.orderByDescending("updatedAt");
query.findInBackground((posts, e) -> {
if (mSwipeRefreshLayout.isRefreshing()) {
mSwipeRefreshLayout.setRefreshing(false);
}
if (e == null) {
// We found messages!
mPosts = posts;
String[] usernames;
usernames = new String[mPosts.size()];
int i = 0;
for(ParseObject post : mPosts) {
usernames[i] = yeet.getString(ParseConstants.KEY_SENDER_NAME);
i++;
}
FeedAdapter adapter = new FeedAdapter(
getListView().getContext(),
mYeets);
setListAdapter(adapter);
}
});
}
不錯的建議。我選擇了選項1,因爲我不介意updatedAt是否在父對象上發生了更改,但這只是我設計的一部分。回覆的帖子如預期的那樣碰到頂端。當我有空時,我會在這裏分享我的代碼。謝謝。看到選項2 – santafebound
的實現會很有趣,但我不認爲你應該這樣做。我這樣做是因爲我需要關於對象的更多細節,而不僅僅是updatedAt屬性。 –
好吧,這是有道理的。我只是在這種情況下做了我所需要的。 – santafebound