错误:必须结合orderByKey()使用startAt(字符串值),endAt(字符串值)或equalTo(字符串值)

时间:2017-03-28 17:48:05

标签: android firebase firebase-realtime-database firebaseui

我正在使用FirebaseRecyclerAdapter来显示列表,我想只显示值为true的那些键。 (请注意,键的存储为布尔值而不是字符串

Database Structure

我尝试使用如下查询:

mAdapter = new FirebaseRecyclerAdapter<Boolean, PollAdapterViewHolder>(Boolean.class, R.layout.ongoing_poll_list, PollAdapterViewHolder.class, ref.orderByKey().equalTo(true)) {
            @Override
            public void populateViewHolder(final PollAdapterViewHolder pollViewHolder, Boolean model, int position) {...}

其中, ref = FirebaseDatabase.getInstance().getReference().child("subscriptions/" + FirebaseAuth.getInstance().getCurrentUser().getUid());

但是,我收到此错误:

java.lang.IllegalArgumentException: You must use startAt(String value), endAt(String value) or equalTo(String value) in combination with orderByKey(). Other type of values or using the version with 2 parameters is not supported

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

看起来你正在使用equalTo(boolean)。错误消息显示使用equalTo(String)。

我怀疑你实际上并不想使用orderByKey()。看起来你可能想要使用orderByValue()。