-2

私のアプリには、スタッフと学生の2種類のユーザーがいます。これらのユーザを認証するためにfirebase authを使用しています。それらは別々のログインページを持ち、そのデータはデータベースの異なるChildに格納されます。ユーザーが学生の場合、スタッフに固有のアプリの機能を使用することはできません。それに応じて私のアプリの機能を操作できるように、現在ログインしているユーザーを確認する方法はありますか? Psが:私は現在どのアプリを使用しているユーザーかを確認してください

Database

答えて

0

ログイン用メールとパスワードを使用していますが、データベース内のユーザタイプを保存する必要があります。

データベースの構造:

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

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

(USERTYPEがスタッフまたは学生になります)

あなたがして、現在のユーザーIDを取得することができます。ユーザータイプを設定

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

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

をreplying.Yourアイデアのためにありがとう完璧なようだが、問題は、子の名前は、ユーザーの種類そのものであるとのuser_idがその内に保存されていることです上記の私のデータベース構造をチェックすることができます。どの子にuser_idが存在するかを確認する方法はありますか? –

関連する問題