这是我的数据库:
我正在尝试从Firebase数据库检索我的数据。 我的执行像: 从logindb中选择*,其中loginname ='pandi'和loginpass ='1234'。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my__value);
mlist = (ListView) findViewById(R.id.mylist);
Intent intent = getIntent();
databaseReference = FirebaseDatabase.getInstance().getReference("logindb");
String search = intent.getStringExtra("mval");
databaseReference = FirebaseDatabase.getInstance().getReference();
Query query = databaseReference.child("loginname").orderByChild("loginId").equalTo(search);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
// dataSnapshot is the "issue" node with all children with id 0
for (DataSnapshot issue : dataSnapshot.getChildren()) {
String address=issue.child("address").getValue().toString();
Toast.makeText(getApplicationContext(), address, Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(TAG, "onCancelled: "+databaseError);
}
});
没有收到任何数据。
这里没有显示错误。
答案 0 :(得分:2)
根据您的问题,
据我所知,您想搜索用户名是pandi和密码1234。
以下查询可能会为您正常工作。
在此查询中,如果条件为条件,它将返回节点的键。
Query query = databaseReference.orderByChild("loginname").equalTo(search);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot issue : dataSnapshot.getChildren()) {
LoginPojo pojo = dataSnapshot.getValue(LoginPojo.class);
if(pojo.getLoginpasssword().equals("1234")){
Log.e("Key", issue.getKey());
}
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(TAG, "onCancelled: "+databaseError);
}
});