【发布时间】:2017-11-23 17:32:39
【问题描述】:
我有一个基本上如下所示的 Firebase 数据库:
最终,我试图捕捉“趋势”信息。 “趋势”将构成:
- 最近(添加到 Firebase 时)
- 高度评价(最高票数)
我在我的数据库中使用 FirebaseUI(最新版本 3.0.1)。我的查询如下:
Query query = FirebaseDatabase.getInstance()
.getReference()
.child("Polls")
.limitToLast(3)
.orderByChild("vote_count");
FirebaseRecyclerOptions<Poll> options = new FirebaseRecyclerOptions.Builder<Poll>()
.setQuery(query, Poll.class)
.build();
mFireAdapter = new FirebaseRecyclerAdapter<Poll, PollHolder>(options) {
@Override
protected void onBindViewHolder(final PollHolder holder, int position, Poll model) {
holder.mPollQuestion.setText(model.getQuestion());
String voteCount = String.valueOf(model.getVote_count());
//TODO: Investigate formatting of vote count for thousands
holder.mVoteCount.setText(voteCount);
Picasso.with(getActivity().getApplicationContext())
.load(model.getImage_URL())
.fit()
.into(holder.mPollImage);
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent toClickedPoll = new Intent(getActivity(), PollHostActivity.class);
toClickedPoll.putExtra("POLL_ID", mFireAdapter.getRef(holder.getAdapterPosition()).getKey());
startActivity(toClickedPoll);
}
});
}
@Override
public PollHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.latest_item,parent,false);
return new PollHolder(v);
}
};
希望首先查看最近添加的孩子,然后按 vote_count 孩子对这些孩子进行排序。不幸的是,这个查询没有正确处理,因为它首先按子排序,然后限制为 3。
我的查询可以吗? Cloud Firestore 的更新能否解决?
【问题讨论】:
标签: java android firebase firebaseui