Firebaseに登録して、新しいプロジェクトを作成しました。Firebaseから、アプリドメインとSHA1デバッグキーの入力を求められました。これらの詳細を入力すると、アプリモジュールのルートに追加するためのgoogle-services.jsonファイルが生成されました。
私の質問は、この.jsonファイルをパブリック(オープンソース)リポジトリに追加する必要があるかどうかです。APIキーのように、秘密にする必要があるものですか?
回答:
google-services.json
ファイルは、Firebaseドキュメントからのものです:
Firebaseは、単一の設定ファイルを介してすべてのAPI設定と認証情報を管理します。
このファイルはgoogle-services.json
、AndroidとGoogleService-Info.plist
iOSで名前が付けられています。
それをに追加.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は、「google-services.jsonはハッカーから安全ですか?」と指摘し、次のように付け加えています。
はい、そのAPIキーは公開してはならないサーバーAPIキーではないため
google-services.json
、他のユーザーに表示されていれば問題ありません。いずれの場合も、GoogleCloudコンソールでのクライアントAPIキーの使用方法を制限する必要があります。
google-services.json
はapi_key
。というエントリがあります。それは「サーバーAPIキー」とは異なるAPIキーですか?
google-services.json
、他のユーザーに表示されていれば問題ありません。いずれの場合も、GoogleCloudコンソールでのクライアントAPIキーの使用方法を制限する必要があります。
この議論、あなたが公共のレポに追加することができそうです。そのコンテンツはとにかくAPKになり、おそらく簡単に抽出できます。
google-services.json
ませんが、問題は、パブリックオープンソースリポジトリのソース管理にコミットする必要があるかどうかについてでした。そして、ほとんどの場合、答えは間違いなくノーです-リポジトリの所有者が全世界にデフォルトでGoogleアカウントAPIクォータを使用することを望まない限り。@VonCの答えは立っています。