Facebookログインをアプリに統合することで、ユーザーがFacebookアカウントを使用して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で認証する
- サインインしたFacebookユーザーのアクセストークンを取得するには、 AndroidおよびiOS +の手順に従ってください。
- ユーザーが正常にサインインした後、アクセストークンをFirebaseクレデンシャルと交換し、Firebaseクレデンシャルを使用してFirebaseで認証します:
Firebase.Auth.Credential credential = Firebase.Auth.FacebookAuthProvider.GetCredential(accessToken); 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();