从Firebase实时数据库中检索特定数据

时间:2018-08-30 05:39:01

标签: java android firebase firebase-realtime-database

请帮助我从Firebase Realtime数据库中检索特定数据,我有2个用户Professor和Student,并且我想使用该数据进行验证。

FireBase Realtime Database

enter image description here

 firebaseAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                progressDialog.dismiss();
                if(task.isSuccessful()){

                    //The task is successful || Task Login
                    Toast.makeText(getApplicationContext(),"Successfully Login",Toast.LENGTH_LONG).show();

                        // If the users is professor but if it is student go to userStudent.class
                        finish();
                        startActivity(new Intent(getApplicationContext(),userProf.class));

FireBase Realtime Database

2 个答案:

答案 0 :(得分:0)

这就是您要寻找的

FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser(); 
DatabaseReference reference;
firebaseAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    progressDialog.dismiss();
                    if(task.isSuccessful()){

                        //The task is successful || Task Login
                       Toast.makeText(getApplicationContext(),"Successfully Login",Toast.LENGTH_LONG).show(); 
                       reference = FirebaseDatabase.getInstance().
                       getReference("dbname").child(user.getUid());


                       reference.addListenerForSingleValueEvent(new ValueEventListener() {
                       @Override
                       public void onDataChange(DataSnapshot dataSnapshot) {
                       for(DataSnapshot datas: dataSnapshot.getChildren()){
                       String usertype=datas.child("user").getValue().toString();

                       // If the users is professor but if it is 
                            // student go to userStudent.class
                       if(usertype.equals("Student")){

                         startActivity(new      
                         Intent(getApplicationContext(),studentProfile.class));
                         finish();

                       }else if (usertype.equals("Professor")) {
                         startActivity(new      
                         Intent(getApplicationContext(),professorProfile.class));
                         finish();
                       }

                      }
                    }

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






    }

答案 1 :(得分:0)

尝试此代码

firebaseAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            progressDialog.dismiss();

            if(task.isSuccessful()){

                //The task is successful || Task Login
                Toast.makeText(getApplicationContext(),"Successfully Login",Toast.LENGTH_LONG).show();

                 //user UID
                String userId = task.getResult().getUser().getUid();
                DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child(userId);

                ref.addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                        String user = dataSnapshot.child("user").getValue(String.class);

                        if (user.equals("Student")) {

                         startActivity(new Intent(getApplicationContext(),userStudent.class));

                        } else if(user.equals("Professor")) {
                          startActivity(new Intent(getApplicationContext(),userProf.class));
                        }
                        finish();      

                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
               });

}

希望有帮助