ホームページ >Java >&#&チュートリアル >複数のユーザー タイプ (学生、教師、管理者) を Firebase アプリのそれぞれのアクティビティにリダイレクトするにはどうすればよいですか?
赤: 複数のユーザー タイプをそれぞれのアクティビティにリダイレクトする方法
問題の理解
3 つの異なるユーザー タイプ(学生、教師、管理者)を持つ Firebase ベースの投票アプリでは、ログイン後に各ユーザーを特定のアクティビティにリダイレクトする必要があります。現在のコードは 2 つのユーザー タイプのリダイレクトを正常に管理していますが、3 番目のタイプ (管理者) を組み込もうとすると課題に直面します。
複数のユーザー タイプに対するソリューションの変更
3 番目のユーザー タイプに対応するには、最初のステップはデータベース構造を変更することです。元のスキーマは 2 種類のユーザーのみに対応していました。 3 番目のタイプを導入する場合、各ユーザーの「タイプ」フィールドを含むように構造を更新する必要があります。改訂されたデータベース スキーマは次のようになります。
Firebase-root | --- users | --- uidOne | | | --- name: "Ed" | | | --- type: 1 | --- uidTwo | | | --- name: "Tyff" | | | --- type: 2 | --- uidThree | --- name: "Admin" | --- type: 3
コードの更新
更新されたデータベース構造を配置すると、3 番目のスキーマを処理するようにコードを調整できます。ユーザータイプ。次のコード スニペットは、ユーザーの「タイプ」値を取得し、それに応じてリダイレクトする方法を示しています。
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid(); DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference uidRef = rootRef.child("users").child(uid); ValueEventListener valueEventListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if(dataSnapshot.child("Type").getValue(Long.class) == 1) { startActivity(new Intent(MainActivity.this, student.class)); } else if (dataSnapshot.child("TYPE").getValue(Long.class) == 2) { startActivity(new Intent(MainActivity.this, teacher.class)); } else if (dataSnapshot.child("TYPE").getValue(Long.class) == 3) { startActivity(new Intent(MainActivity.this, admin.class)); } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { Log.d(TAG, databaseError.getMessage()); } }; uidRef.addListenerForSingleValueEvent(valueEventListener);
これらの変更を実装することにより、投票アプリは 3 つのタイプのユーザー (学生、教師、および管理者) は、ログイン後にそれぞれのアクティビティに移動します。
以上が複数のユーザー タイプ (学生、教師、管理者) を Firebase アプリのそれぞれのアクティビティにリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。