본문 바로가기

Flutter

[Flutter] 아주 간단하게 firebase google 로그인 구현

스프링 부트를 사용한 예제 애플리케이션을 AWS를 통해 모노리식에서 MSA로 MSA에서 다시 컨테이너 오케스트레이션으로 개선해나가는 과정을 모두 담은 강의를 출시하게 되었습니다.

강의 과정에서 15개 이상의 서비스를 사용하게 됩니다.
그래서 클라우드 개발자가 아닌 프론트엔드 개발자, 백엔드 개발자, 학생 분들도 AWS의 폭넓은 지식 쉽고 빠르게 습득할 수 있는 기회가 될 수 있다고 생각합니다!

배너를 누르면 강의로 이동됩니다.
커리큘럼을 보시고 관심 있으신분들은 수강해주시면 감사드리겠습니다!

블로그를 통해 구매하시는 분들에게만 10%할인 쿠폰을 증정중입니다.
꼭 아래 쿠폰번호를 입력해 주세요!

16861-259843d6c2d7


 

 

 

*firebase 프로젝트 설정 안 되어 있다면

 

[FlutterFire] 아주 쉽게 Flutter프로젝트 Firebase 설정 (with firebase CLI)

Firebase CLI 설치 및 로그인 curl -sL https://firebase.tools | bash 위 명령어를 입력하고 password를 입력하면 cli가 설치된다. version 명령어를 통해 설치가 되었는지 확인 firebase login firebase logi..

kanoos-stu.tistory.com

 


 

firebase auth 설정

flutter pub add firebase_auth

위 명령어를 통해 firebase auth 라이브러리를 추가하고 put get 을 진행해준다.

 

FirebaseAuth.instance.authStateChanges().listen((user) {
  if (user == null) {
  } else {}
});

위의 dart 코드를 통해 유저의 로그인 상태를 확인하고 변화된 이벤트를 받을 수 있다.

 

StreamBuilder(
  stream: FirebaseAuth.instance.authStateChanges(),
  builder: (context, AsyncSnapshot<User?> user) {
    if (user.hasData) {
      return const MainWidget();
    } else {
      return const LoginWidget();
    }
  },
);

만약 상태의 변화를 streamBuilder로 받아보려면 해당 코드를 사용하면 된다.

 


 

google sign in 설정

firebase console 설정

flutter 설정을 진행하기 전에 firebase에 google auth를 사용하는 설정과 sha 인증서 지문을 등록해야한다.
1. Google auth 사용설정

firebase 콘솔의 Authentication 탭에서 제공업체 google 사용설정을 체크하고 저장


2. sha 인증서 지문 등록
먼저 SHA1 인증서 지문을 추출한다.

// mac/linux
keytool -list -v \
-alias androiddebugkey -keystore ~/.android/debug.keystore
// window
keytool -list -v \
-alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

flutter project 경로에서 위의 명령어를 입력
비밀번호는 android를 입력하면 SHA1, SHA256 인증서 지문이 출력된다.

firebase 콘솔에서 프로젝트 설정화면에서 하단의 '디지털 지문 추가'를 통해 SHA1 지문을 등록한다.
https://developers.google.com/android/guides/client-auth

 

Authenticating Your Client  |  Google Play services  |  Google Developers

Authenticating Your Client Certain Google Play services (such as Google Sign-in and App Invites) require you to provide the SHA-1 of your signing certificate so we can create an OAuth2 client and API key for your app. Using Play App Signing If you've publi

developers.google.com


그리고 flutter로 돌아와

flutter pub add google_sign_in

위 명령어를 통해 google sign in 라이브러리를 추가하고 put get 을 진행해준다.

Future<UserCredential> signInWithGoogle() async {
  // Trigger the authentication flow
  final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();

  // Obtain the auth details from the request
  final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication;

  // Create a new credential
  final credential = GoogleAuthProvider.credential(
    accessToken: googleAuth?.accessToken,
    idToken: googleAuth?.idToken,
  );

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithCredential(credential);
}

위 메서드를 통해 google sign in 진행이 가능하다.