android - 如何在 firebase 中显示示例(3 和 7)之间的类别?

标签 android firebase firebase-realtime-database firebaseui

如何在 firebase 中显示(示例)(3 和 7)之间的类别?

foodList.orderByChild("menuId").startAt(3).endAt(7).equalTo(categoryID)

这是我的代码:

private void loadListFood(String categoryID) {
    adapter = new FirebaseRecyclerAdapter<Food, FoodViewHolder>(Food.class,R.layout.food_item,FoodViewHolder.class,
            foodList.orderByChild("menuId").startAt(3).endAt(7).equalTo(categoryID)

    ) {
        @Override
        protected void populateViewHolder(FoodViewHolder viewHolder, Food model, int position) {


            viewHolder.food_name.setText(model.getName());
            viewHolder.food_time.setText(model.getPrice());
            Picasso.with(getBaseContext()).load(model.getImage()).into(viewHolder.food_image);
            mDialog.dismiss();
            final Food local = model ;
            viewHolder.setItemClickListener(new ItemClickListener() {
                @Override
                public void onClick(View view, int position, boolean isLongClick) {
                    Intent intent = new Intent(FoodList.this,FoodDetail.class);
                    intent.putExtra("FoodId",adapter.getRef(position).getKey());
                    startActivity(intent);
                }
            });

        }
    };

    recyclerView.setAdapter(adapter);
}

错误信息:

11-14 13:19:34.636 8233-8233/com.pro.ijdev.proapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.pro.ijdev.proapp, PID: 8233
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pro.ijdev.proapp/com.pro.ijdev.proapp.FoodList}: java.lang.IllegalArgumentException: Can't call equalTo() and startAt() combined
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6494)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
 Caused by: java.lang.IllegalArgumentException: Can't call equalTo() and startAt() combined
    at com.google.firebase.database.Query.zze(Unknown Source:12)
    at com.google.firebase.database.Query.equalTo(Unknown Source:0)
    at com.pro.ijdev.proapp.FoodList.loadListFood(FoodList.java:63)
    at com.pro.ijdev.proapp.FoodList.onCreate(FoodList.java:53)
    at android.app.Activity.performCreate(Activity.java:7009)
    at android.app.Activity.performCreate(Activity.java:7000)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 
    at android.app.ActivityThread.-wrap11(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6494) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

最佳答案

如错误所述:

java.lang.IllegalArgumentException: Can't call equalTo() and startAt() combined

您不能在单个调用中同时使用方法 equalTo()startAt()。如果您想根据多个属性对记录进行排序,请看一下我在这个 post 中的回答。 ,我在其中解释了如何使用组合属性实现此目的。

关于android - 如何在 firebase 中显示示例(3 和 7)之间的类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53291455/

相关文章:

java - 通过低功耗蓝牙(即通过信标)向附近的移动设备发送通知,且设备上未安装任何应用程序

Firebase:协作应用程序的安全规则

android - 根对象与否? API 响应的最佳实践是什么?

android - 自定义进度对话框 Android

android - 为什么 getHttpSocketFactory 已被弃用,什么替代了它?

angular - 将 FirebaseUI 与 AngularFire2 结合使用

typescript - “查询”在类型 'QueryFn' 中不存在 | angularfire2

android - Android 版 Firebase 云消息传递中的无效注册错误

java - 使 firebase 查询搜索不区分大小写

ios - View Controller 不刷新