Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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
Java 在Firebase数据库中搜索所有用户的特定密钥/值对_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 在Firebase数据库中搜索所有用户的特定密钥/值对

Java 在Firebase数据库中搜索所有用户的特定密钥/值对,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我试图在Firebase数据库中搜索与我在编辑文本(editTextValue)中键入的数字匹配的IDNumber键/值对的所有值。但最终的结果是,我的代码只针对第一个用户IDNumber键/值对进行搜索 如何在数据库中搜索每个用户的ID号以查找匹配项? 我在onClick方法中输入的DatabaseReference如下所示: mFirebaseDatabase.child("users").orderByChild("IDNumber").addChildEventListener(

我试图在Firebase数据库中搜索与我在编辑文本(editTextValue)中键入的数字匹配的IDNumber键/值对的所有值。但最终的结果是,我的代码只针对第一个用户IDNumber键/值对进行搜索

如何在数据库中搜索每个用户的ID号以查找匹配项? 我在onClick方法中输入的DatabaseReference如下所示:

    mFirebaseDatabase.child("users").orderByChild("IDNumber").addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String prevChildKey) {

            User userRef = dataSnapshot.getValue(User.class) ;



            if (editTextValue.equals(userRef.IDNumber)) {
                textView.setText(R.string.user_notified) ;
            } else {
                textView.setText(R.string.IDNumber_not_found) ;
            }

        }
如果需要,我的用户类如下所示:

public class User {
public String name ;
public String IDNumber ;


public User() {
}

public User(String name, String IDNumber) {
    this.name = name ;
    this.IDNumber = IDNumber ;
}

public String getName() {
    return name ;
}

public void setName(String name) {
    this.name = name;
}
}

谢谢。

在您的pojo中添加一个getter

public String getIDNumber() {
    return IDNumber ;
}
改变你的听众

   mFirebaseDatabase.child("users").addValueEventListener(new ValueEventListener() {
      @Override
      public void onDataChange(DataSnapshot dataSnapshot) {
        //We iterate inside the parent node in order to get all childrens
        for(DataSnapshot snapshot : dataSnapshot.getChildren()){
                //Get IDNumber from everybody
                User userRef = snapshot.getValue(User.class) ;
                String userIDNumber = userRef.getIDNumber();
                Log.e("IDNumbers: " , "" + userIDNumber);

           }


      }

      @Override
      public void onCancelled(DatabaseError databaseError) {
        System.out.println("The read failed: " + databaseError.getCode());
      }

 });
您不需要构造函数,而是可以使用空构造函数

删除这个

public User(String name, String IDNumber) {
    this.name = name ;
    this.IDNumber = IDNumber ;
}
就用这个

public User() {
}

如果另一个id匹配,editText仍然会给出相同的输出。要检查结果,只需记录所有值。您可以发布您的数据库结构吗?***-df5dd应用程序标题:******用户-LhJeqbrobPmmURtM licensePlateNumber:“i3t4Uxi48”名称:“Drius Shquille”-LLxp7VvfuJf05NAe licensePlateNumber:“6iy37Uoi”名称:“Jonnie”-LI12yGH_Jw3Unz0F licensePlateNumber:“ababcd3”名称:“Torq”这是我的结构的拷贝和粘贴@GastónSaillénIt仍在使用输入数据库的姓氏/值对。我是否应该将引用从onClick方法中删除,并稍作修改后放入onCreate方法中?@Gaston