检查当前正在使用该应用的用户

时间:2017-07-29 11:11:00

标签: android firebase firebase-realtime-database firebase-authentication

我的应用程序有两种类型的用户,员工和学生。我正在使用firebase auth来验证这些用户。它们具有单独的登录页面,并且它们的数据存储在数据库的不同子节点中。如果用户是学生,则她将无法使用特定于工作人员的应用程序的某些功能。有没有办法检查当前登录的用户,以便我可以相应地操作我的应用程序的功能? Ps:我正在使用电子邮件和密码登录

Database

1 个答案:

答案 0 :(得分:0)

您必须将用户类型保存在数据库中。

数据库结构:

root
 |
 +-- users
 |     |
 |     +-- $userId
 |           |
 |           +-- type : $type (staff or student)

设置用户类型:

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();

mDatabase.child("users").child(userId).child("type").setValue(userType);

(userType将员工学生

您可以使用以下方法检索当前用户ID:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

if (user != null) {
    // User is signed 
    String userId = user.getUid();
} else {
    // No user is signed in
}

获取用户类型:

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();

mDatabase.child("users").child(userId).child("type").addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        String userType = snapshot.getValue();
    }
}

Firebase Realtime Database documentation.