Java Firebase查询逻辑在android中不起作用

Java Firebase查询逻辑在android中不起作用,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我想做一个查询,检查数据库中是否存在某个名字(总统或秘书)。 数据库的结构如下所示 我有这个代码,但它不工作。我做错什么了吗 mDatabase = FirebaseDatabase.getInstance().getReference(); Query presidentquery = mDatabase.child("validate").child(uid).equalTo("President"); presidentquery.addListenerF

我想做一个查询,检查数据库中是否存在某个名字(总统或秘书)。 数据库的结构如下所示

我有这个代码,但它不工作。我做错什么了吗

mDatabase = FirebaseDatabase.getInstance().getReference();
        Query presidentquery = mDatabase.child("validate").child(uid).equalTo("President");
        presidentquery.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) {
                    for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
                        Candidate p = dataSnapshot1.getValue(Candidate.class);
                        president.setEnabled(false);
                        president.setText("Voted Already");
                    }
                }
                else{

                    president.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {

                            startActivity(new Intent(Home.this, AllCandidates.class));
                            finish();
                        }
                    });
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });

似乎您知道要加载的确切节点,在这种情况下,您不需要
equalTo
。相反,您可以使用以下命令查找节点:

Query presidentquery = mDatabase.child("validate").child(uid).child("President");

您的其余代码可以保持不变。

第一条if/else语句已经检查了根
President
是否存在。所以,根据你的结构,它是存在的。我也认为它会起作用,但它不是