【问题标题】:Retrieving Specific value data from FireBase (Android) in listview在列表视图中从 FireBase (Android) 检索特定值数据
【发布时间】:2017-05-13 11:23:22
【问题描述】:

mFirebaseInstance = FirebaseDatabase.getInstance();
mFirebaseRef = mFirebaseInstance.getReferenceFromUrl("https://c7d86.firebaseio.com");


mFirebaseRef.child("bloodgroup").equalTo("B+").addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            getUpdate(dataSnapshot);
        }

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

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {
        }

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

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }


    });

所以请帮助我,因为我是 firebase 的新手,必须知道如何在其中编写查询。

【问题讨论】:

  • 什么不起作用?你有错误吗?
  • m 获取我输入的所有数据。我只想要“B+”血型数据
  • 它向我显示所有数据,但我只想要具有bloodgrp“B+”的数据

标签: java android performance listview firebase-realtime-database


【解决方案1】:

Firebase 数据库查询会评估您执行查询的节点下的子节点。因此,在您使用mFirebaseRef.child("bloodgroup") 的情况下,它会查找/bloodgroup,然后查询其下的孩子。由于没有/bloodgroup,所以没有结果。

正确的代码:

mFirebaseRef = mFirebaseInstance.getReference();
DatabaseReference queryLocation = mFirebaseRef.child("the key under bloodfinder-c7d86 in the screenshot");
Query query = queryLocation.orderByChild("bloodgroup").equalTo("B+");

query.addChildEventListener(new ChildEventListener() {
        @Override

请注意,我必须做一些猜测,因为您分享了 JSON 的图片。对于以后的问题,请将 JSON 共享为文本。您可以通过单击 Firebase Database console 中的“导出 JSON”链接来获取此信息。

【讨论】:

  • 它无法显示数据库中的所有记录
  • 这似乎不太可能。您可以编辑您的问题以分享重现该问题的更新后的最低代码吗?
猜你喜欢
  • 2014-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-03
  • 1970-01-01
  • 2020-08-18
  • 2018-12-09
相关资源
最近更新 更多