2017-03-28 8 views
0

私のデータベースには、以下の通りである:子のリストを取得します

List_of_users> 
      sunil dhakal> 
         departmnet:"Computer Science", 
         level:"Level 3 Undergraduate", 
         name:"sunil dhakal", 
         student_id:"1412361", 
         username:"[email protected]", 

root.child("List_of_user").addValueEventListener(new ValueEventListener() { 

    public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot data :dataSnapshot.getChildren()){ 
      if (data.child(department).exists()&& data.child(level).exists()){ 
       Set<String> set = new HashSet<String>(); 
       Iterator i = dataSnapshot.child("List_of_users").getChildren().iterator(); 
       while (i.hasNext()) { 
        set.add(((DataSnapshot) i.next()).getKey()); 
       } 
       list_of_rooms.clear(); 
       list_of_rooms.addAll(set); 
       arrayAdapter.notifyDataSetChanged(); 
      } 
      else{ 
       Toast.makeText(searchuser.this,"There is not user with the department and level that was selected",Toast.LENGTH_SHORT).show(); 
       return; 
      } 
     } 
    } 

    public void onCancelled(DatabaseError databaseError) {} 
}); 

私は、ユーザーが選択することができるスピナーを持っていますその部門とレベルのデータベース内のすべてのユーザーをリストするボタンをクリックします。

答えて

0

はそれらを得るためにfirebaseクエリを使用します。

firebaseReference.child("List_of_users") 
       .orderByChild("department") 
       .equalTo("valueInSpinner") 
       .orderByChild("level") 
       .equalTo("valueInSpinner") 

その後、あなたはリストビューにバインドするアダプタとそれを使うことができます。

これが役に立ちます。

+0

この形式ですそれを働かせようとする –

0

searchusers.setOnClickListener(新View.OnClickListener()私は多くを試してみましたように、コードを実装する方法と、あなたが私を提供してくださいすることができた場合、{

 public void onClick(View v) { 
      final String department = dep.getSelectedItem().toString().trim(); 
      final String level = lev.getSelectedItem().toString().trim(); 
      root.addValueEventListener(new ValueEventListener() { 

       public void onDataChange(DataSnapshot dataSnapshot) { 
        root.child("List_of_users") 
          .orderByChild("department") 
          .equalTo(department) 
          .orderByChild("level") 
          .equalTo(level); 
        Set<String> set = new HashSet<String>(); 
        Iterator i = dataSnapshot.child("List_of_users").getChildren().iterator(); 
        while (i.hasNext()) { 
         set.add(((DataSnapshot) i.next()).getKey()); 
        } 
        list_of_rooms.clear(); 
        list_of_rooms.addAll(set); 
        arrayAdapter.notifyDataSetChanged(); 
       } 

はOK?

関連する問題