如何从firebase搜索android的数据

时间:2017-07-22 13:47:58

标签: android firebase-realtime-database

database image

我想搜索一个条件,如果学生在' swe'部门然后我将显示每个在swe部门学习的学生的姓名和身份。

  DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("user");
    databaseReference.orderByChild("department").equalTo("swe").addValueEventListener(new com.google.firebase.database.ValueEventListener() {
        @Override
        public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
            String str = dataSnapshot.child("department").getValue(String.class);
            Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

1 个答案:

答案 0 :(得分:0)

对Firebase数据库执行查询时,可能会有多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

您当前的代码无法处理结果是列表的事实。要解决此问题,请循环dataSnapshot.getChildren()

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("user");
databaseReference.orderByChild("department").equalTo("swe").addValueEventListener(new com.google.firebase.database.ValueEventListener() {
    @Override
    public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
        for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
            String str = dataSnapshot.child("department").getValue(String.class);

Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
        }
    }