Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

GoogleサインインとUnityを使用して認証する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Googleログインをアプリに統合することで、ユーザーがGoogleアカウントを使用してFirebaseで認証できるようにすることができます。

あなたが始める前に

Firebase認証を使用する前に、次のことを行う必要があります。

  • Unityプロジェクトを登録し、Firebaseを使用するように設定します。

    • UnityプロジェクトがすでにFirebaseを使用している場合は、Firebase用に登録および構成されています。

    • Unityプロジェクトがない場合は、サンプルアプリをダウンロードできます。

  • UnityプロジェクトにFirebaseUnity SDK (具体的にはFirebaseAuth.unitypackage )を追加します。

UnityプロジェクトにFirebaseを追加するには、 Firebaseコンソールと開いているUnityプロジェクトの両方でタスクが必要になることに注意してください(たとえば、コンソールからFirebase構成ファイルをダウンロードしてからUnityプロジェクトに移動します)。

Firebase.Auth.FirebaseAuthクラスにアクセスします

FirebaseAuthクラスは、すべてのAPI呼び出しのゲートウェイです。 FirebaseAuth.DefaultInstanceを介してアクセスできます。
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Firebaseで認証する

  1. AndroidおよびiOS +の手順に従って、GoogleサインインのIDトークンを取得します。
  2. ユーザーが正常にサインインした後、アクセストークンをFirebaseクレデンシャルと交換し、Firebaseクレデンシャルを使用してFirebaseで認証します:
    Firebase.Auth.Credential credential =
        Firebase.Auth.GoogleAuthProvider.GetCredential(googleIdToken, googleAccessToken);
    auth.SignInWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

次のステップ

ユーザーが初めてサインインすると、新しいユーザーアカウントが作成され、ユーザーがサインインした資格情報(つまり、ユーザー名とパスワード、電話番号、または認証プロバイダー情報)にリンクされます。この新しいアカウントはFirebaseプロジェクトの一部として保存され、ユーザーのログイン方法に関係なく、プロジェクト内のすべてのアプリでユーザーを識別するために使用できます。

  • アプリでは、 Firebase.Auth.FirebaseUserオブジェクトからユーザーの基本的なプロファイル情報を取得できます。

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // The user's Id, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server, if you
      // have one; use User.TokenAsync() instead.
      string uid = user.UserId;
    }
    
  • FirebaseRealtimeデータベースとCloudStorageのセキュリティルールでは、ログインしたユーザーの一意のユーザーIDをauth変数から取得し、それを使用してユーザーがアクセスできるデータを制御できます。

認証プロバイダーのクレデンシャルを既存のユーザーアカウントにリンクすることで、ユーザーが複数の認証プロバイダーを使用してアプリにサインインできるようにすることができます。

ユーザーをサインアウトするには、 SignOut()を呼び出します。

auth.SignOut();