FlutterでFirebaseとGoogleサインインを組み合わせる方法


まず、Firebaseプロジェクトを作成し、Firebaseコンソールで新しいアプリを追加します。その後、Firebase Authenticationを有効にし、Google認証プロバイダを有効化します。

FlutterアプリでGoogleサインインを実装するためには、firebase_authとgoogle_sign_inという2つの便利なプラグインを使用します。まず、pubspec.yamlファイルにこれらのプラグインの依存関係を追加します。

dependencies:
  firebase_auth: ^0.20.1
  google_sign_in: ^5.0.4

その後、pubspec.yamlファイルの依存関係を更新するために、ターミナルでflutter pub getコマンドを実行します。

取得した設定情報を使用して、Flutterアプリ内でGoogleサインインを実装します。以下は簡単な例です。

import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';
final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn _googleSignIn = GoogleSignIn();
void signInWithGoogle() async {
  final GoogleSignInAccount? googleUser = await _googleSignIn.signIn();
  final GoogleSignInAuthentication googleAuth =
      await googleUser!.authentication;
  final AuthCredential credential = GoogleAuthProvider.credential(
    accessToken: googleAuth.accessToken,
    idToken: googleAuth.idToken,
  );
  final UserCredential userCredential =
      await _auth.signInWithCredential(credential);
  final User? user = userCredential.user;
  if (user != null) {
    // Googleサインイン成功
  } else {
    // Googleサインイン失敗
  }
}
void signOut() async {
  await _auth.signOut();
  await _googleSignIn.signOut();
}
void main() {
  runApp(MyApp());
}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Firebase Google Sign-In',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Firebase Google Sign-In'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: signInWithGoogle,
                child: Text('Googleサインイン'),
              ),
              ElevatedButton(
                onPressed: signOut,
                child: Text('サインアウト'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

以上のコード例では、signInWithGoogle関数でGoogleサインインを行い、signOut関数でサインアウトします。また、main関数内でMyAppウィジェットを実行しています。

これで、FlutterアプリでFirebaseとGoogleサインインを組み合わせる方法がわかりました。この方法を使って、ユーザーがGoogleアカウントを使用してアプリにログインできるようにすることができます。