GitHub と Unity を使用して認証する (original) (raw)
GitHub 認証をアプリに統合することで、ユーザーは GitHub アカウントを使用して Firebase での認証を行えます。
始める前に
Firebase Authentication を使用するには、次の作業が必要です。
- Firebase を使用するように Unity プロジェクトを登録して構成する。
- Unity プロジェクトですでに Firebase を使用している場合、この登録と構成はすでに行われています。
- Unity プロジェクトがない場合は、サンプルアプリをダウンロードできます。
- Unity プロジェクトに Firebase Unity SDK(具体的には
FirebaseAuth.unitypackage)を追加する。
Firebase を Unity プロジェクトに追加するには、Firebase コンソールと開いている Unity プロジェクトの両方でタスクを行う必要があります(コンソールから Firebase 構成ファイルをダウンロードし、それを Unity プロジェクトに移動するなど)。
Firebase.Auth クラスへのアクセス
すべての API 呼び出しは FirebaseAuth クラスを使用して行われます。このクラスには、FirebaseAuth.DefaultInstance を介してアクセスできます。
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Firebase で認証する
- Android 用の手順または iOS+ 用の手順に沿って、ログイン済み GitHub ユーザーのトークンを取得します。
- ユーザーがログインに成功したら、アクセス トークンを Firebase 認証情報と交換し、Firebase 認証情報を使用して Firebase での認証を行います。
Firebase.Auth.Credential credential =
Firebase.Auth.GitHubAuthProvider.GetCredential(accessToken);
auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => {
if (task.IsCanceled) {
Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");
return;
}
if (task.IsFaulted) {
Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception);
return;
}
Firebase.Auth.AuthResult result = task.Result;
Debug.LogFormat("User signed in successfully: {0} ({1})",
result.User.DisplayName, result.User.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;
} - Firebase Realtime Database と Cloud Storage のセキュリティ ルールでは、ログイン済みユーザーの一意のユーザー ID を
auth変数から取得し、それを使用して、ユーザーがアクセスできるデータを制御できます。
既存のユーザー アカウントに認証プロバイダの認証情報をリンクすることで、ユーザーは複数の認証プロバイダを使用してアプリにログインできるようになります。
ユーザーのログアウトを行うには、SignOut() を呼び出します。
auth.SignOut();
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-12-10 UTC。