google-services.json (Firebase에서)을 내 저장소에 추가해야하나요?


100

방금 Firebase에 가입하고 새 프로젝트를 만들었습니다. Firebase가 내 앱 도메인과 SHA1 디버그 키를 요청했습니다. 이 세부 정보를 입력하고 앱 모듈의 루트에 추가 할 google-services.json 파일을 생성했습니다.

내 질문은이 .json 파일을 공개 (오픈 소스) 저장소에 추가해야한다는 것입니다. API 키처럼 비밀이어야합니까?

답변:


94

Firebase 문서google-services.json파일은 다음과 같습니다.

Firebase는 단일 구성 파일을 통해 모든 API 설정과 사용자 인증 정보를 관리합니다.
파일 이름 google-services.json은 Android 및 GoogleService-Info.plistiOS에서 지정됩니다.

a에 추가 .gitignore하고 공개 저장소에 포함하지 않는 것이 합리적 입니다.
이것은 26 호google-services.json포함 된 내용에 대한 자세한 내용과 함께 논의되었습니다 .

같은 프로젝트 googlesamples/google-services를 가지고 그것으로.gitignore 예를 들면.
로,하지만 주석 에 의해 stepheaw ,이 스레드는 언급을하지

라이브러리 또는 오픈 소스 샘플의 경우 사용자가 코드를 자신의 백엔드로 가리 키도록 자신의 것을 삽입하기 때문에 JSON 파일을 포함하지 않습니다.
그렇기 때문에 GitHub의 대부분의 Firebase 저장소에서 JSON 파일을 볼 수 없습니다.

"데이터베이스 URL, Android API 키 및 저장소 버킷"이 비밀이 아닌 경우 파일을 저장소에 추가하는 것을 고려할 수 있습니다.
" google-services.json은 해커로부터 안전합니까? " 에서 언급했듯이 이것은 그렇게 간단하지 않습니다.

baueric의견 에서 묻습니다 .

그 포스트에서 그는 말한다 :

JSON 파일에는 매우 민감한 정보 (예 : 서버 API 키)가 포함되어 있지 않습니다.

그러나 google-services.json라는 항목이 있습니다 api_key.
" server api key" 와 다른 API 키 입니까?

Willie Chalmers III 는 " Is google-services.json은 해커로부터 안전합니까? "를 가리키고 다음을 추가합니다.

예, 해당 API 키는 공개되어서는 안되는 서버 API 키가 아니므 google-services.json로 다른 사람에게 표시되는 것이 좋습니다.

어쨌든 Google Cloud 콘솔에서 클라이언트 API 키를 사용할 수있는 방법을 제한해야합니다.


10
이것은 실제로 정확하지 않습니다. 중포 기지 엔지니어는 말했습니다 괜찮 소스 제어에 확인. @Yaron의 대답이 의미합니다.
Willie Chalmers III

2
@WillieChalmersIII 좋아요. 이에 따라 답변을 수정했습니다.
VonC

그는 말한다 게시 @WillieChalmersIII에서 "는 JSON 파일 (서버 API 키와 같은) 어떤 슈퍼 민감한 정보를 포함하지 않는"하지만이 google-services.json항목은 전화가 않습니다 api_key. "서버 API 키"와 다른 API 키입니까?
baueric

1
@baueric 자세한 내용은 답변을 참조하십시오. 예, 해당 API 키는 공개되어서는 안되는 서버 API 키가 아니므 google-services.json로 다른 사람에게 표시되는 것이 좋습니다. 어쨌든 Google Cloud 콘솔에서 클라이언트 API 키를 사용할 수있는 방법을 제한해야합니다.
Willie Chalmers III

36

에서 논의는 공용의 repo에 추가 할 수 있습니다 보인다. 어쨌든 그 내용은 APK로 끝나고 아마도 추출하기 쉬울 것입니다.


1
동의하며 지금이 문제를 해결하고 있습니다. 누군가가 APK를 디 컴파일하는 것으로부터 해당 파일의 키를 암호화하는 방법이 있습니까?
stepheaw

13
API 키를 apk에서 쉽게 추출 할 수 있다는 것은 확실히 사실이지만, 문제는 공개 오픈 소스 저장소google-services.json 에서 소스 제어에 커밋되어야 하는지 여부에 대한 것이 었습니다 . 그리고 대부분의 경우 대답은 확실히 아니오입니다 . 저장소 소유자가 전 세계가 기본적으로 Google 계정 API 할당량을 사용하기를 원하지 않는 한. @VonC의 대답이 의미합니다.
friederbluemle

2
hitraj47은 공개 저장소 에 추가하는 것에 대해 물었습니다 . 그 토론은 공용 저장소에 대해 언급하지 않으며 개인 저장소에 대해 논의하는 것 같습니다.
Eugene
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.