Flutter에서 Google Firebase를 이용해 Google login을 연동하려면, 인증서를 생성하고 Firebase에 등록해야 한다.
흔한 에러 메시지
만약 Flutter 빌드를 시도했는데, 아래와 같은 에러가 나온다면 debug.keystore가 잘 만들어 졌는지, 그리고 제 위치에 있는지 일단 확인해 보아야 한다.
[+54649 ms] I/flutter (25565): PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
[ +1 ms] I/flutter (25565): login Error!!!!
[ ] E/flutter (25565): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: type '_CompactLinkedHashSet<void>' is not a subtype of type 'FutureOr<Null>'
[ ] E/flutter (25565): #0 _FutureListener.handleError (dart:async/future_impl.dart:157:7)
[ ] E/flutter (25565): #1 Future._propagateToListeners.handleError (dart:async/future_impl.dart:692:47)
[ ] E/flutter (25565): #2 Future._propagateToListeners (dart:async/future_impl.dart:713:24)
인증서 생성하기
Mac의 경우, /Users/{사용자 이름}/.android
Windows의 경우 C:\Users\{사용자 이름}\.android로 이동해 아래 명령어를 실행한다.
인증서 생성자 정보를 적당히 입력하고 비밀번호를 설정해 주면, 해당 경로에 debug.keystore 인증서가 생성된다.
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000
Firebase에 인증서 등록하기
Firebase의 프로젝트 설정으로 이동한다.
Mac의 경우, /Users/{사용자 이름}/.android
Windows의 경우 C:\Users\{사용자 이름}\.android 경로에서 생성한 인증서의 지문을 확인한다.
keytool -list -v -keystore debug.keystore -alias androiddebugkey
내용 중 SHA1 이라고 써있는 항목의 값이 SHA1 인증서 지문이다.
확인한 인증서의 지문을 Firebase에 등록해 준다.
인증서 지문 정보를 추가했으면 인증서 정보가 업데이트된 google-service.json을 다운받는다.
프로젝트의 android/app 경로 아래에 google-services.json을 추가해 주고, 다시 빌드를 해보면 에러가 사라지고 실행되는 것을 확인할 수 있다.
* 만약 여전히 에러가 발생한다면, 아래 Stackoverflow 답변에서 추가 정보를 확인할 수 있다.
https://stackoverflow.com/a/58644909/6284384
Flutter and google_sign_in plugin: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
The dialog (Google form) for the credentials is opened successfully, but after I fill my credentials I'm getting this error. I followed the instructions from here. Created a Firebase project, enabl...
stackoverflow.com
이 포스트가 도움이 되었다면 하트를 눌러주세요~!