Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Firebase Android中使用orderByChild equalsTo获取子项_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

在Firebase Android中使用orderByChild equalsTo获取子项

在Firebase Android中使用orderByChild equalsTo获取子项,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,这是我在Firebase上的数据- app-<br /> -Users<br /> +366MWex62IhUaOwbkjjGedIgLQJ3<br /> -sfsfaegaergg<br /> firstname: "John"<br /> lastname: "Doe"<br /> phone: "+1123456789"<br /> app- -用户 +366MWex62

这是我在Firebase上的数据-

app-<br />
-Users<br />
 +366MWex62IhUaOwbkjjGedIgLQJ3<br />
 -sfsfaegaergg<br />
     firstname: "John"<br />
     lastname: "Doe"<br />
     phone: "+1123456789"<br />
app-
-用户
+366MWex62IhUaOwbkjjGedIgLQJ3
-SFAEGAERGG
名字:“约翰”
姓氏:“Doe”
电话:“+1123456789”
目前我的数据库中有两个用户。我的输入是
phone=“+1123456789”(第二用户)

这是我的代码-

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference rf = rootRef.child("Users"); com.google.firebase.database.Query query = rf.orderByChild("phone").equalTo("+1123456789"); query.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for(DataSnapshot snap: dataSnapshot.getChildren()) { Log.v("children", snap.getChildren().toString()); } } @Override public void onCancelled(DatabaseError databaseError) { } }); DatabaseReference rootRef=FirebaseDatabase.getInstance().getReference(); DatabaseReference rf=rootRef.child(“用户”); com.google.firebase.database.Query Query=rf.orderByChild(“电话”).equalTo(“+1123456789”); addValueEventListener(新的ValueEventListener(){ @凌驾 公共void onDataChange(DataSnapshot DataSnapshot){ 对于(DataSnapshot快照:DataSnapshot.getChildren()){ Log.v(“children”,snap.getChildren().toString()); } } @凌驾 已取消的公共void(DatabaseError DatabaseError){ } });
我没有得到第二个用户的详细信息。调试器一直运行到addValueListener,然后直接退出。我需要在哪里更正?谢谢。

“调试器一直运行到addValueListener,然后直接退出”-结果将异步返回。是否在onDataChange中设置了断点约翰·奥雷利

 mFirebaseRef = mFirebaseInstance.getReference();
    DatabaseReference queryLocation = 
 mFirebaseRef.child("BloodGroupDetail");
    Query query = queryLocation.orderByChild("bloodgroup").equalTo("B+");
    query.addValueEventListener(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            getUpdate(dataSnapshot);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }


    });
谢谢。

试试这个:
 mFirebaseRef = mFirebaseInstance.getReference();
    DatabaseReference queryLocation = 
 mFirebaseRef.child("BloodGroupDetail");
    Query query = queryLocation.orderByChild("bloodgroup").equalTo("B+");
    query.addValueEventListener(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            getUpdate(dataSnapshot);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }


    });

“调试器一直运行到addValueListener,然后直接退出”-结果将异步返回。您是否在数据更改中设置了断点?是。过了一会儿就回来了。这很正常,对吧?@Kedar是的,就是这样。你的问题解决了吗?它解决了问题,但我不明白为什么突然读取数据要花这么长时间。我必须等待一分钟,firebase才能获取数据:/谢谢你的时间。约翰·奥雷利回答了这个问题