방금 Firebase에 가입하고 새 프로젝트를 만들었습니다. Firebase가 내 앱 도메인과 SHA1 디버그 키를 요청했습니다. 이 세부 정보를 입력하고 앱 모듈의 루트에 추가 할 google-services.json 파일을 생성했습니다.
내 질문은이 .json 파일을 공개 (오픈 소스) 저장소에 추가해야한다는 것입니다. API 키처럼 비밀이어야합니까?
답변:
Firebase 문서 의 google-services.json
파일은 다음과 같습니다.
Firebase는 단일 구성 파일을 통해 모든 API 설정과 사용자 인증 정보를 관리합니다.
파일 이름google-services.json
은 Android 및GoogleService-Info.plist
iOS에서 지정됩니다.
a에 추가 .gitignore
하고 공개 저장소에 포함하지 않는 것이 합리적 입니다.
이것은 26 호 에 google-services.json
포함 된 내용에 대한 자세한 내용과 함께 논의되었습니다 .
같은 프로젝트 googlesamples/google-services
를 가지고 그것으로.gitignore
예를 들면.
로,하지만 주석 에 의해 stepheaw ,이 스레드는 언급을하지
라이브러리 또는 오픈 소스 샘플의 경우 사용자가 코드를 자신의 백엔드로 가리 키도록 자신의 것을 삽입하기 때문에 JSON 파일을 포함하지 않습니다.
그렇기 때문에 GitHub의 대부분의 Firebase 저장소에서 JSON 파일을 볼 수 없습니다.
"데이터베이스 URL, Android API 키 및 저장소 버킷"이 비밀이 아닌 경우 파일을 저장소에 추가하는 것을 고려할 수 있습니다.
" google-services.json은 해커로부터 안전합니까? " 에서 언급했듯이 이것은 그렇게 간단하지 않습니다.
그 포스트에서 그는 말한다 :
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 키를 사용할 수있는 방법을 제한해야합니다.
google-services.json
항목은 전화가 않습니다 api_key
. "서버 API 키"와 다른 API 키입니까?
google-services.json
로 다른 사람에게 표시되는 것이 좋습니다. 어쨌든 Google Cloud 콘솔에서 클라이언트 API 키를 사용할 수있는 방법을 제한해야합니다.
에서 이 논의는 공용의 repo에 추가 할 수 있습니다 보인다. 어쨌든 그 내용은 APK로 끝나고 아마도 추출하기 쉬울 것입니다.
google-services.json
에서 소스 제어에 커밋되어야 하는지 여부에 대한 것이 었습니다 . 그리고 대부분의 경우 대답은 확실히 아니오입니다 . 저장소 소유자가 전 세계가 기본적으로 Google 계정 API 할당량을 사용하기를 원하지 않는 한. @VonC의 대답이 의미합니다.