コンソールへ移動

Unity を使用して Firebase 匿名認証を行う

Firebase で認証する一時的な匿名アカウントを、Firebase Authentication で作成して使用できます。一時的な匿名アカウントを使用すると、アプリに登録していないユーザーが、セキュリティ ルールで保護されているデータを使用できるようになります。匿名ユーザーがアプリへ登録する場合、ログイン認証情報を匿名アカウントにリンクして、以後のセッションでも引き続き、保護されているデータを使用可能にできます。

始める前に

  1. Firebase Authentication を使用するには、Firebase Unity SDK(具体的には FirebaseAuth.unitypackage)を Unity プロジェクトに追加する必要があります。

    これらの初期設定のステップの詳しい手順については、Firebase を Unity プロジェクトに追加するをご覧ください。

  2. アプリを Firebase プロジェクトに接続していない場合は、Firebase コンソールで接続します。
  3. 匿名認証を有効にします。
    1. Firebase コンソールで [Authentication] セクションを開きます。
    2. [ログイン方法] ページで [匿名] を有効にします。

Firebase 匿名認証を行う

ログアウトしたユーザーが Firebase での認証が必要なアプリ機能を使用する場合は、次の手順に沿って匿名でのユーザーのログインを行います。

すべての API 呼び出しは FirebaseAuth クラスを使用して行われます。このクラスは、FirebaseAuth.DefaultInstance でアクセスできます。
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
1. Firebase.Auth.FirebaseAuth.SignInAnonymouslyAsync を呼び出します。
auth.SignInAnonymouslyAsync().ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInAnonymouslyAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInAnonymouslyAsync encountered an error: " + task.Exception);
    return;
  }

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

匿名アカウントを永久アカウントに変換する

匿名ユーザーがアプリへ登録した後、新しいアカウントの下で引き続き従来の作業を行えるようにしなければならない場合があります。たとえば、アプリへの登録前にユーザーがショッピング カートに追加したアイテムを、新しいアカウントのショッピング カートにも入れておく、といったケースです。手順は次のとおりです。

  1. ユーザーがアプリに登録したら、ユーザーの認証プロバイダのログインフローを行います(ただし、いずれかのメソッドを呼び出す手前まで)。たとえば、ユーザーの Google ID トークン、Facebook アクセス トークン、メールアドレスとパスワードを取得します。
  2. 新しい認証プロバイダの AuthCredential を取得します。

  3. ログイン ユーザーのメソッドにオブジェクトを渡します。

呼び出しが成功したら、ユーザーの新しいアカウントが匿名アカウントの Firebase データにアクセスできるようになります。

次のステップ

これで、ユーザーが Firebase で認証できるようになったため、Firebase ルールを使用して、Firebase データベースのデータへのユーザー アクセスを制御できます。