好吧我在firebase数据库上使用google github。有人评论如果用户喜欢别人评论,他们可以给出明星(比如)。另一方面,我想制作一个只显示最高评论的页面。如果我使用此查询:
示例代码如下 -
package com.google.firebase.quickstart.database.fragment;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.Query;
public class MyTopPostsFragment extends PostListFragment {
public MyTopPostsFragment() {}
@Override
public Query getQuery(DatabaseReference databaseReference) {
// [START my_top_posts_query]
// My top posts by number of stars
String myUserId = getUid();
Query myTopPostsQuery = databaseReference.child("user-posts").child(myUserId)
.orderByChild("starCount");
// [END my_top_posts_query]
return myTopPostsQuery;
}
}
它将返回所有顶级评论。如何指定诸如周或日的最高评论。我的datasnapshoot中还有一个时间戳
答案 0 :(得分:1)
Firebase实时数据库不支持链式查询。所以像这样的查询:
select * from user
where CRM_Status='pending' and dateOfTermination < DATE_ADD(CURDATE(), INTERVAL 1 DAY)
被禁止。在同一查询中多次调用order-by方法会引发错误。您一次只能使用一个order-by方法。
要解决此问题,您可以创建一个额外的密钥以使其成为可能。 “帖子”可以包含databaseReference.child("user-posts")
.child(myUserId)
.orderByChild("starCount")
.orderByChild("timestamp");
和starCount
的组合键。您的新密钥应如下所示:
timestamp
然后,您可以根据此新密钥查询数据库。