React-Native/Android

Firebase Android upgrade후 FIS_AUTH_ERROR. Error when communicating with the Firebase Installations server API

버그매니저 2020. 11. 17. 11:07

react-native-firebase 라이브러리를 업데이트하면서 react-native-firebase@app, react-native-firebase@messaing 등 라이브러리 업데이트도 같이 해줬다.

 

2020년 11월 17일자로, 우리 앱 기준으로

react-native-firebase@app v9.0.0

react-native-firebase@messaging v8.0.1

react-native-firebase@analytics v8.0.1

react-native-firebase@crashlytics v8.5.2

react-native-firebase@dynamicLink v7.5.13

으로 업그레이드를 해줬다.

 

근데 여태까지 잘왔던 messaging이 Release Mode에서 messaging이 안오는 현상이 발생함. ( Debug 빌드에서는 잘됨 )

Release라 디버깅도 제대로 안되고, android studio를 켜서 logcat으로 확인하니 아래와 같은 에러가 뜸.

 

W/Firebase-Installations: Error when communicating with the Firebase Installations server API. HTTP response: [403 Forbidden: { "error": { "code": 403, "message": "Request from this Android client application [budleId] are blocked.", "status": "PERMISSION_DENIED", "details": [ { "@type": "type.googleapis.com/google.rpc.Help", "links": [ { "description": "Google developers console API key", "url": "https://console.cloud.google.com/apis/credentials" } ] } ] } } ]

E/Firebase-Installations: Firebase options used while communicating with Firebase server APIs: [apiKey], [appId], E/Firebase-Installations: Firebase Installations can not communicate with Firebase server APIs due to invalid configuration. Please update your Firebase initialization process and set valid Firebase options (API key, Project ID, Application ID) when initializing Firebase.

 

 

Firebase Github 이슈 확인

Firebase 8.4.6 버전에서 이미 유사한 이슈가 있었던 것 같다. 저 링크를 타고 가봄.

 

 

[🐛] Bug Report Title - NativeFirebaseError: [messaging/unknown] FIS_AUTH_ERROR Android React-Native · Issue #4466 · inverta

Issue Facing this issue only in Android ,while IOS working perfectly , NativeFirebaseError: [messaging/unknown] FIS_AUTH_ERROR Error Details NativeFirebaseError: [messaging/unknown] FIS_AUTH_ERROR ...

github.com

특별히 별다른 해결책은 찾지 못함.

 

GoogleServices.json 다시 다운로드 받기

console.firebase.google.com/

 

로그인 - Google 계정

하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인

accounts.google.com

구글 파이어베이스 콘솔에 접속해서,

 

톱니바퀴 아이콘 > 프로젝트 설정을 클릭한다.

 

firebase google-services.json

 

google-services.json을 다시 다운받아서 Project > android > app에 기존 google-services.json을 대체한다.

 

이렇게해서 해결되는 사람도 있는데 나는 이렇게 바꿔도 안되었음...

 

 

Google Cloud Platform 홈페이지 접속
 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

그래서 위에 에러로그 박스에 뜬 링크로 가보았다.

 

 

예전에 firebase console에서 만들었던 API key가 보인다.

안드로이드 키가 문제가 있어보이므로 Android key를 클릭하면,

 

 

SHA-1 서명 인증서 디지털 지문을 빌드별로 설정해 놓은 리스트가 보인다.

먼저 본인이 설정해 놓은 SHA-1 지문이 유효한 것인지 확인해본다.

 

[ 앱의 SHA-1, SHA-256 지문 확인 방법 ]

- debug용 keystore 지문 확인
$keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

- release용 keystore 지문 확인
$keytool -list -v -alias [alias이름] -keystore [release.keystore의 경로]

command창에서 입력하면 SHA-1, SHA-256 등의 지문을 확인할 수 있다.

alias, release.keystore는 초기에 뭘로 설정해 놓았는지 알아야한다.

 

 

그리고 구글 클라우드 플랫폼에 등록되어 있는 SHA-1 지문과 아래의 firebase console에 등록되어 있는 지문과 일치하는 지도 꼼꼼히 확인해본다.

( 내 케이스는 저 SHA-1 지문이 복합적으로 꼬여있어서 안되었던 것이다..ㅜㅜ 완전 삽질함.)

 

Firebse console SHA 인증서 지문 확인

 

 

API 설정 변경 후 저장을 생활화

 

만약 SHA-1 지문을 추가하거나 수정, 삭제 한다면 하고나서 반드시 아래에 '저장'을 눌러준다.

 

나는 SHA-1 지문 바꿨는데 왜 지문이 다시 바꼈지? 했는데 저장을 안 누른 모양이다.

 

알아서 되는 줄...후 

 

 

Firebase Installation API

참고로 stack overflow에 의하면 키 제한 > Firebase Installation API를 제한을 걸어주면 에러가 해결 된다는 말도 있던데 나는 해도 별 반응이 없었다.

 

SHA-1 지문 제대로 맞추고 google-services.json 다시 다운받아서 넣어주고 하니 해결되었다.

 

 

 

 

 

 

 

 

반응형