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