あなたが始める前に
Firebase認証を使用する前に、次のことを行う必要があります。
- UnityプロジェクトをFirebaseプロジェクトに登録します。
- UnityプロジェクトにFirebaseUnity SDK (具体的には
FirebaseAuth.unitypackage
)を追加します。
UnityプロジェクトにFirebaseを追加するで、これらの初期設定手順の詳細な手順を確認してください。
- プロジェクトのサーバーキーを取得します。
- プロジェクトの設定で[サービスアカウント]ページに移動します。
- [サービスアカウント]ページの[ FirebaseAdminSDK ]セクションの下部にある[新しい秘密鍵の生成]をクリックします。
- 新しいサービスアカウントの公開鍵と秘密鍵のペアは、コンピューターに自動的に保存されます。このファイルを認証サーバーにコピーします。
Firebaseで認証する
FirebaseAuth
クラスは、すべてのAPI呼び出しのゲートウェイです。 FirebaseAuth.DefaultInstanceを介してアクセスできます。Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
認証サーバーからのトークンを使用してFirebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
を呼び出します。
- ユーザーがアプリにサインインするときは、サインイン資格情報(ユーザー名やパスワードなど)を認証サーバーに送信します。サーバーは資格情報を確認し、有効な場合はカスタムトークンを返します。
- 認証サーバーからカスタムトークンを受け取ったら、それを
Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync
に渡して、ユーザーにサインインします:auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInWithCustomTokenAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInWithCustomTokenAsync 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();