【问题标题】:Get Fire base real time database using where condition使用 where 条件获取 Firebase 实时数据库
【发布时间】:2019-04-11 22:55:14
【问题描述】:

我正在尝试使用 where 条件从 Firebase 实时数据库中获取数据。 我想根据特定关键字获取所有数据。请在下面提交我的 JSON 数据。

我想获取公司等于 Balaji Seeds 的数据。我想打印 proname,proid。

我试过下面的代码。

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference mDatabaseReference = database.getReference();
    Query query = mDatabaseReference.child("Products").orderByChild("company").equalTo("Balaji Seeds");


        query.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String previousChildKey) {
                Map<String, Object> newPost = (Map<String, Object>) dataSnapshot.getValue();

                Toast.makeText(CompanyCategoryList.this, "ProName: "+newPost.get("proname"),Toast.LENGTH_LONG).show();


            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }


        });

希望您能理解我的担忧。提前致谢。

【问题讨论】:

    标签: android firebase-realtime-database


    【解决方案1】:

    Firebase 实时数据库查询在子节点列表上运行。您的数据结构嵌套很深,因此更难查询。

    在您当前的数据模型中,您可以在/Products/Vegetable_Seeds/Chili 上运行查询,然后获取company 等于Balaji Seeds 的子节点节点。但是数据模型不允许查询该节点的所有Products

    如果您想允许此查询,您要么必须将当前模型更改为平面列表,要么添加一个额外的数据结构来保存查找公司产品所需的数据。

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 2019-02-27
      • 2019-04-13
      • 2020-04-19
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      相关资源
      最近更新 更多