在不知道孩子的情况下寻找价值

时间:2019-08-02 17:40:40

标签: android firebase firebase-realtime-database

这是我的数据库的屏幕截图

Firebase Database Image

我通过编写以下代码获得了用户密钥ID

userID=Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid();

我需要在该键角色中搜索该孩子,以检查它是 STUDENT 还是 INSTRUCTOR

问题是我在网上找到的所有解决方案都需要一个父节点来搜索,我不知道该用户是学生还是教师 ,所以我不能只是写

 FirebaseDatabase.getInstance().getReference().child("students")

FirebaseDatabase.getInstance().getReference().child("instructors")

我试图直接访问密钥,但是没有运气

FirebaseDatabase.getInstance().getReference().child(userID);

那么,如何实现呢?

1 个答案:

答案 0 :(得分:0)

同时检查两者

        dbRef = FirebaseDatabase.getInstance().getReference().child("students");
        dbRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(dataSnapshot.hasChild("userID"));
                {
                    //isStudent = true;
                }
            }

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

            }
        });

        dbRef = FirebaseDatabase.getInstance().getReference().child("instructors");
        dbRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(dataSnapshot.hasChild("userID"));
                {
                    //isInstructor = true;
                }
            }

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

            }
        });

isStudentisInstructor的值将帮助您查找用户是学生还是教师。如果用户ID仅存在于学生或教师中,则变量isStudentisInstructor中只有一个是true。如果两者均为false,则该用户不存在。