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

UnityでFirebase認証を開始する

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

Firebase Authenticationを使用すると、ユーザーは、電子メールアドレスやパスワードのサインイン、GoogleサインインやFacebookログインなどのフェデレーションIDプロバイダーなど、1つ以上のサインイン方法を使用してゲームにサインインできます。このチュートリアルでは、ゲームにメールアドレスとパスワードのログインを追加する方法を紹介することで、FirebaseAuthenticationの使用を開始します。

あなたが始める前に

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

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

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

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

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

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

新規ユーザーを登録する

新規ユーザーが自分のメールアドレスとパスワードを使用してゲームに登録できるフォームを作成します。ユーザーがフォームに入力したら、ユーザーから提供された電子メールアドレスとパスワードを検証し、それらをCreateUserWithEmailAndPasswordAsyncメソッドに渡します。

auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  // Firebase user has been created.
  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

既存のユーザーにサインインする

既存のユーザーが自分のメールアドレスとパスワードを使用してサインインできるフォームを作成します。ユーザーがフォームに入力したら、 SignInWithEmailAndPasswordAsyncメソッドを呼び出します。

auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  Firebase.Auth.FirebaseUser newUser = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      newUser.DisplayName, newUser.UserId);
});

認証状態変更イベントハンドラーを設定し、ユーザーデータを取得します

サインインおよびサインアウトイベントに応答するには、イベントハンドラーをグローバル認証オブジェクトにアタッチします。このハンドラーは、ユーザーのサインイン状態が変化するたびに呼び出されます。ハンドラーは、認証オブジェクトが完全に初期化された後、およびネットワーク呼び出しが完了した後にのみ実行されるため、サインインしたユーザーに関する情報を取得するのに最適な場所です。

FirebaseAuthオブジェクトのStateChangedフィールドを使用してイベントハンドラーを登録します。ユーザーが正常にサインインすると、イベントハンドラーでユーザーに関する情報を取得できます。

void InitializeFirebase() {
  auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
  auth.StateChanged += AuthStateChanged;
  AuthStateChanged(this, null);
}

void AuthStateChanged(object sender, System.EventArgs eventArgs) {
  if (auth.CurrentUser != user) {
    bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null;
    if (!signedIn && user != null) {
      DebugLog("Signed out " + user.UserId);
    }
    user = auth.CurrentUser;
    if (signedIn) {
      DebugLog("Signed in " + user.UserId);
      displayName = user.DisplayName ?? "";
      emailAddress = user.Email ?? "";
      photoUrl = user.PhotoUrl ?? "";
    }
  }
}

次のステップ

他のIDプロバイダーと匿名ゲストアカウントのサポートを追加する方法を学びます。