首页 > 解决方案 > 在不知道孩子的情况下搜索一个值

问题描述

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

Firebase 数据库映像

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

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

我需要在那个关键角色中搜索孩子以检查它是学生还是教员

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

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

或者

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

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

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

那么,这怎么可能实现呢?

标签: androidfirebasefirebase-realtime-database

解决方案


检查两者

        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 仅存在于学生或讲师中,则只有一个变量isStudentorisInstructor将是true。如果两者都是,false则用户不存在。


推荐阅读