-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是否存在於哪個孩子? –

相關問題