Flutter Google Authentication

Flutter 구글 인증

Flutter에서 Google 인증을 구현하려면 firebase_authgoogle_sign_in 패키지를 사용해야 합니다. 아래는 Flutter 애플리케이션에서 Google 인증을 설정하는 단계별 가이드입니다.

1. Firebase 설정

  1. Firebase 프로젝트 생성:
  1. Firebase 프로젝트에 앱 추가:
  • Firebase 프로젝트에 Android 또는 iOS 앱을 추가합니다. (각 플랫폼에 대한 설정은 Firebase 콘솔의 지침을 따릅니다.)
  1. Firebase 인증 설정:
  • Firebase 콘솔에서 인증 탭으로 이동하여 ‘Sign-in method’를 선택합니다.
  • Google을 활성화하고 필요한 정보를 입력합니다.

2. Flutter 프로젝트 설정

  1. 프로젝트에 필요한 패키지를 추가:
  • pubspec.yaml 파일에 firebase_authgoogle_sign_in 패키지를 추가합니다.
   dependencies:
     flutter:
       sdk: flutter
     firebase_core: latest_version
     firebase_auth: latest_version
     google_sign_in: latest_version
  1. Firebase 초기화:
  • Flutter 프로젝트의 시작 파일 (main.dart)에서 Firebase를 초기화합니다.
   import 'package:firebase_core/firebase_core.dart';
   import 'package:flutter/material.dart';

   void main() async {
     WidgetsFlutterBinding.ensureInitialized();
     await Firebase.initializeApp();
     runApp(MyApp());
   }

   class MyApp extends StatelessWidget {
     @override
     Widget build(BuildContext context) {
       return MaterialApp(
         home: Scaffold(
           appBar: AppBar(title: Text('Google Sign-In')),
           body: SignInDemo(),
         ),
       );
     }
   }
  1. Google Sign-In 구현:
  • Google Sign-In 및 Firebase 인증을 위한 로직을 작성합니다.
   import 'package:firebase_auth/firebase_auth.dart';
   import 'package:google_sign_in/google_sign_in.dart';
   import 'package:flutter/material.dart';

   class SignInDemo extends StatefulWidget {
     @override
     _SignInDemoState createState() => _SignInDemoState();
   }

   class _SignInDemoState extends State<SignInDemo> {
     final FirebaseAuth _auth = FirebaseAuth.instance;
     final GoogleSignIn googleSignIn = GoogleSignIn();

     Future<User?> _signInWithGoogle() async {
       final GoogleSignInAccount? googleUser = await googleSignIn.signIn();
       if (googleUser == null) {
         // 사용자가 로그인 취소
         return null;
       }

       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;

       return user;
     }

     @override
     Widget build(BuildContext context) {
       return Center(
         child: ElevatedButton(
           child: Text('Sign in with Google'),
           onPressed: () async {
             User? user = await _signInWithGoogle();
             if (user != null) {
               ScaffoldMessenger.of(context).showSnackBar(SnackBar(
                 content: Text('Sign in ${user.displayName} with Google'),
               ));
             }
           },
         ),
       );
     }
   }

이제 Google 인증이 Flutter 애플리케이션에 설정되었습니다. 이 코드를 통해 사용자는 Google 계정을 사용하여 애플리케이션에 로그인할 수 있습니다. 추가적으로, Android와 iOS 설정에 따라 네이티브 설정이 필요할 수 있으니 Firebase 문서를 참고하세요.

Leave a Reply

Your email address will not be published. Required fields are marked *