第20回|Firebase Authentication:Googleログイン実装[AI]
⚙️ 準備と環境設定
Firebase Authenticationを利用するには、事前にFirebaseプロジェクトを作成し、Android Studio Otterとの連携を済ませる必要があります。今回は、KotlinとJetpack Composeを使ったGoogleログインの実装手順を詳しく解説します。
![第20回|Firebase Authentication:Googleログイン実装[AI] 1 Android Studio Otter](https://zesys.net/blog/wp-content/uploads/2025/11/ChatGPT-Image-2025年11月10日-18_51_43-300x200.png)
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アプリで利用する際の連携ポイントは以下の通りです:
- google-services.json の配置:`app/`ディレクトリに追加
- Gradle設定:Firebase AuthenticationとGoogle Play Services Authを追加
- WebクライアントID設定:Firebase Consoleで取得したIDを
strings.xmlに登録 - ActivityResultLauncher の準備:ComposeでIntent結果を受け取るために
rememberLauncherForActivityResultを使用 - ログインフローの確認:Googleログインボタンをタップし、Firebaseでユーザーが作成されることを確認
📘 まとめ
第20回では、Firebase Authenticationを使ったGoogleログインをKotlinとComposeで実装する手順を解説しました。Gemini AIによるコード生成を活用することで、ログインボタンや認証処理の自動生成も可能です。次回以降は、メール認証やパスワード認証の実装方法についても順を追って学習できます。
「※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。」