-2

我有两种类型的用户,分别是我的应用程序Staff和Student。我正在使用Firebase身份验证来验证这些用户。他们有单独的登录页面,他们的数据存储在数据库的不同Childs中。如果用户是学生,她将无法使用该工作人员特有的应用程序的某些功能。有什么方法可以检查当前登录哪个用户,以便我可以相应地操纵我的应用程序的功能? PS:我使用的电子邮件地址和密码登录检查哪个用户当前正在使用该应用程序

Database

回答

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.

+0

感谢u代表replying.Your想法似乎完美的,但问题是,孩子的名字本身就是用户类型和USER_ID保存内部的child.You可以检查我上面的数据库结构。有什么方法可以检查user_id是否存在于哪个孩子? –

相关问题