Я только что зарегистрировался в Firebase и создал новый проект. Firebase запросила у меня домен моего приложения и ключ отладки SHA1. Я ввожу эти данные, и он сгенерировал файл google-services.json, который я мог добавить в корень моего модуля приложения.

У меня вопрос, следует ли добавить этот файл .json в общедоступное (с открытым исходным кодом) репо. Это что-то, что должно быть секретным, например, ключ API?

hitraj47

Ответы (2)

A 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, потому что намерение состоит в том, чтобы пользователи вставляли свой собственный, чтобы указать код на свой собственный сервер.
Вот почему вы не увидите файлы JSON в большинстве наших репозиториев firebase на GitHub.

Если «URL-адрес базы данных, ключ Android API и сегмент хранилища» для вас не секрет, вы можете рассмотреть возможность добавления файла в репозиторий.
Как упоминалось в разделе «Безопасен ли google-services.json от хакеров?», это не так просто.

baueric спрашивает в комментарии:

В этом посте он говорит:

Файл JSON не содержит сверхсекретной информации (например, ключа API сервера)

Но в google-services.json есть запись с именем api_key.
Это другой ключ api, чем "ключ api сервера"?

Вилли Чалмерс III указывает на «Безопасен ли google-services.json от хакеров?» и добавляет:

Да, этот ключ API не является ключом API сервера, который никогда не должен быть общедоступным, поэтому ничего страшного, если ваш google-services.json виден другим.

В любом случае вам все равно следует ограничить использование ключа клиентского API в консоли Google Cloud.

Из этого обсуждения кажется, что вы можете добавить его в публичное репо. Его содержимое в любом случае попадает в APK, и его, вероятно, легко извлечь.

2022 WebDevInsider