Flutter GoogleLogin 연동

쏘리초이·2020년 4월 11일
0

TIL

목록 보기
9/23

Flutter로 firebase 로그인 연동하기

1. firebase에서 프로젝트 생성하기

image

Android를 클릭한다.

image
image

  1. Android 패키지 이름
    -> android > app > src > main > AndroidMainiFest.xml 파일 안에 패키지 이름을 가져온다.

디버그 서명 인증서 SHA-1
-> 맥 기준 : keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore 명령어를 터미널에 입력한다.
비밀번호는 없다. SHA1 부분에 해당하는것을 복사한다.

  1. 구성파일을 다운로드 받은 후
    android > app 안에 google-servieces.json 파일을 추가한다.

  2. 소스코드를 추가한다.
    (sync now를 추가하라는 부분은 생략해도 된다.)

2. Authentication

Authentication > 로그인 방법(Sign-in method)로 들어간다.
image
Google을 클릭해서 사용을 설정한다.
image

3. pubspec.yaml

다시 프로젝트로 돌아와서 pubspec.yaml 파일에 추가한다.
image
google_sign_in, firebase_auth를 최신버전으로 설치한다.

import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';

class LoginPage extends StatelessWidget {
  final GoogleSignIn _googleSignIn = GoogleSignIn();
  final FirebaseAuth _auth = FirebaseAuth.instance;
  ...
  @override
  Widget build(BuildContext context) {
    SignInButton(
        Buttons.Google,
        onPressed: (){
          _handleSignIn()
            .then((FirebaseUser user) => print(user))
    }
    
    Future<FirebaseUser> _handleSignIn() async {
    final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
    final GoogleSignInAuthentication googleAuth = await googleUser.authentication;

    final AuthCredential credential = GoogleAuthProvider.getCredential(
      accessToken: googleAuth.accessToken,
      idToken: googleAuth.idToken,
    );

    final FirebaseUser user = (await _auth.signInWithCredential(credential)).user;
    print("signed in " + user.displayName);
    return user;
  }
}
  

_handleSignIn() 부분은 pub 홈페이지에 있는 예제를 그대로 복붙해오면 된다!

profile
Hello Universe!

0개의 댓글