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
是否存在。所以,根据你的结构,它是存在的。我也认为它会起作用,但它不是