第20回|Firebase Authentication:Googleログイン実装[AI]


⚙️ 準備と環境設定

Firebase Authenticationを利用するには、事前にFirebaseプロジェクトを作成し、Android Studio Otterとの連携を済ませる必要があります。今回は、KotlinとJetpack Composeを使ったGoogleログインの実装手順を詳しく解説します。

Android Studio Otter
Android Studio Otter

1. FirebaseプロジェクトでGoogleログインを有効化

Firebase Consoleで対象プロジェクトを開き、左メニューの「Authentication」→「ログイン方法」を選択します。「Google」を選び、有効化します。WebクライアントIDをコピーしておくと、Androidアプリ側で認証設定に利用できます。

2. Gradle依存関係の設定

プロジェクトの build.gradle に以下を追加します:

dependencies {
    implementation platform('com.google.firebase:firebase-bom:34.3.0')
    implementation 'com.google.firebase:firebase-auth-ktx'
    implementation 'com.google.android.gms:play-services-auth:22.3.0'
}

これにより、Firebase AuthenticationとGoogle Sign-Inの最新SDKを利用できます。


🤖 Geminiによる支援の使い方

Gemini AIを使うと、Googleログイン用のKotlinコードを自動生成できます。例えば「ComposeでFirebase Authenticationを使ったGoogleログインコードを生成」とプロンプトを入力すると、ボタンや認証フローまでのコード例を出力してくれます。初心者でも簡単に実装可能です。


💡 Kotlinでの実装例

以下に、Composeを使ったGoogleログインのKotlinコード例を示します。

1. Googleログインボタンの作成

@Composable
fun GoogleSignInButton(onClick: () -> Unit) {
    Button(
        onClick = onClick,
        modifier = Modifier.fillMaxWidth().padding(16.dp)
    ) {
        Icon(
            painter = painterResource(id = R.drawable.ic_google),
            contentDescription = "Google Icon"
        )
        Spacer(modifier = Modifier.width(8.dp))
        Text(text = "Sign in with Google")
    }
}

説明:ComposeのButtonにGoogleアイコンとテキストを配置し、クリック時に認証処理を呼び出すUIを作成しています。

2. Google Sign-Inの設定とIntent起動

val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
    .requestIdToken(getString(R.string.default_web_client_id))
    .requestEmail()
    .build()

val googleSignInClient = GoogleSignIn.getClient(context, gso)

fun signIn() {
    val signInIntent = googleSignInClient.signInIntent
    launcher.launch(signInIntent)
}

説明:WebクライアントIDを利用してGoogleSignInOptionsを構築し、Intentを起動してログイン画面を表示します。

3. Firebaseへの認証連携

fun firebaseAuthWithGoogle(idToken: String) {
    val credential = GoogleAuthProvider.getCredential(idToken, null)
    FirebaseAuth.getInstance().signInWithCredential(credential)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                val user = FirebaseAuth.getInstance().currentUser
                Log.d("Auth", "Sign in success: ${user?.displayName}")
            } else {
                Log.w("Auth", "Sign in failed", task.exception)
            }
        }
}

説明:取得したIDトークンをFirebaseに渡すことで、ユーザー認証を完了します。成功時にはユーザー情報が取得可能です。


🧩 FirebaseまたはCloudとの連携

GoogleログインをComposeアプリで利用する際の連携ポイントは以下の通りです:

  1. google-services.json の配置:`app/`ディレクトリに追加
  2. Gradle設定:Firebase AuthenticationとGoogle Play Services Authを追加
  3. WebクライアントID設定:Firebase Consoleで取得したIDを strings.xml に登録
  4. ActivityResultLauncher の準備:ComposeでIntent結果を受け取るために rememberLauncherForActivityResult を使用
  5. ログインフローの確認:Googleログインボタンをタップし、Firebaseでユーザーが作成されることを確認

📘 まとめ

第20回では、Firebase Authenticationを使ったGoogleログインをKotlinとComposeで実装する手順を解説しました。Gemini AIによるコード生成を活用することで、ログインボタンや認証処理の自動生成も可能です。次回以降は、メール認証やパスワード認証の実装方法についても順を追って学習できます。


🤖Android開発(Otter)[AI]Android Studio Otter × Gemini × Firebase × Google Cloud 開発支援ブログ一覧 Android Studio Otter 🩵【第1部】導入編:Android Studio Otterの準備と基本操作(1〜5回) ・ 第1回|A…
続きを読む
 zesys.net
🤖Android開発(Otter)[AI]


「※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。」

広告

迷子探偵やもやも [AI]

探偵はいつも迷子ですw

シェアする