Подтвердить что ты не робот

Firebase 2.0 - как бороться с несколькими вкусами (средами) приложения Android?

У меня есть несколько вариантов моего приложения. Как мне настроить эту сторону сервера? Мои имена пакетов:

com.example.app (производство) com.example.app.staging (постановка) com.example.app.fake (поддельный)

Должно ли это быть 3 отдельных проекта в консоли firebase?

4b9b3361

Ответ 1

Во многом это будет зависеть от того, как вы хотите, чтобы ваш проект работал. Вы можете установить все три в одной консоли или настроить как два или более разных проекта. Любая опция действительна.

Преимущества одного и того же проекта:

  • Разделите те же биллинг, квоты, разрешения и службы (база данных, хранилище, FCM и т.д.).
  • Окружающая среда, аналогичная производству.

Преимущества различных проектов:

  • Невозможно перезаписать производственные данные или повлиять на пользователей.

Если вы используете несколько проектов, вы можете воспользоваться поддержкой типов конструкций, которая позволит вам иметь разные файлы google-services.json для разных версий. Если вы используете один проект, то тот же google-services.json будет работать для всех разновидностей.

Примечание: поскольку CodyMace говорит в комментариях - не забудьте повторно загрузить файл JSON каждый раз, когда вы добавляете приложение!

Есть вещи, которые вы можете сделать, чтобы минимизировать риски в любом случае (например, иметь dev/stage/prod/keys в вашей базе данных и иметь похожие структуры внизу), но то, что имеет смысл для вас, в основном связано с компромиссами.

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

Ответ 2

Примечание. Я еще не полностью пробовал это, но документировал его здесь, чтобы не потерять его, пока не дойду до него.

На самом деле не нужно использовать плагин gradle, который заставляет вас иметь проект firebase для всех ваших вкусов и типов сборки.

Это плохо документировано, но можно найти подсказку в верхней части документации для FirebaseApp и еще несколько в https://firebase.google.com/docs/configure/

В качестве альтернативы initializeApp (Context, FirebaseOptions) инициализирует экземпляр приложения по умолчанию. Этот метод следует вызывать из приложения. Это также необходимо, если оно используется вне основного процесса приложения.

Итак, выберите google-services.json как обычно, и из него возьмите mobilesdk_app_id и current_key (в разделе api_key), это должно быть все, что необходимо для отслеживания Google Analytics, по крайней мере. С помощью этой информации выполните следующие действия в своем подклассе Application для тех вариантов, в которых они вам нужны:

FirebaseOptions options = new FirebaseOptions.Builder()
  .setApplicationId("<mobilesdk_app_id>")
  .setApiKey("<current_key>")
  .build();
FirebaseApp.initializeApp(this, options);