ホームページ >Java >&#&チュートリアル >複数のユーザー タイプ (学生、教師、管理者) を Firebase アプリのそれぞれのアクティビティにリダイレクトするにはどうすればよいですか?

複数のユーザー タイプ (学生、教師、管理者) を Firebase アプリのそれぞれのアクティビティにリダイレクトするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-10 19:31:10438ブラウズ

How to Redirect Multiple User Types (Students, Teachers, and Admins) to Their Respective Activities in a Firebase App?

赤: 複数のユーザー タイプをそれぞれのアクティビティにリダイレクトする方法

問題の理解

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。