Как запустить версию отладочного приложения в базе данных «debug» Firebase

На сессиях Google I / O 2016 были показаны большие улучшения в отношении полной интеграции Firebase. В моих приложениях я пытаюсь перейти на новое решение (ы), но у меня есть несколько вопросов. Одним из них является следующее:

В моих приложениях Firebase я использовал параметр для определения базы данных Firebase следующим образом (gradle):

Файл gradle.properties:

FIREBASE_REF_REL="https://xxxxxxx.firebaseio.com/" FIREBASE_REF_DEB="https://xxxxxxx-dev.firebaseio.com/" 

Файл build.gradle:

 buildTypes { debug { minifyEnabled false multiDexEnabled true it.buildConfigField 'String', 'FIREBASE_ROOT_URL', FIREBASE_REF_DEB } release { minifyEnabled true useProguard true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' zipAlignEnabled true it.buildConfigField 'String', 'FIREBASE_ROOT_URL', FIREBASE_REF_REL } return true } 

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

В новом решении Firebase это больше не представляется возможным из-за сгенерированного файла google-services.json который содержит ссылку Firebase (как описано здесь: https://firebase.google.com/support/guides/firebase-android#import_your_project_to_the_new_firebase_console_numbered ).

При попытке ссылаться на мою базу данных отладки я получаю следующие типы ошибок:

 Caused by: com.google.firebase.database.DatabaseException: Invalid URL (https://xxxxxxx-dev.firebaseio.com/) passed to getReference(). URL was expected to match configured Database URL: https://xxxxx.firebaseio.com 

Мой вопрос: каков правильный способ / лучшая практика запуска приложения против тестовой базы данных Firebase в новой ситуации?

Я не уверен, что это лучшая практика.

Вы можете использовать разные файлы google-services.json .
Я изучаю текущий плагин ( com.google.gms:google-services:3.0.0 ), если он поддерживает типы сборки. Предыдущий ( com.google.gms:google-services:2.1.X ) поддерживаемые com.google.gms:google-services:2.1.X но не типы.

В любом случае вы должны иметь возможность использовать somenthing следующим образом:

 app/src/release/google-services.json app/google-services.json 

В этом случае плагин просматривает местоположения и останавливается, когда находит файл google-services.json .

Таким образом, вы можете использовать различные приложения firebase для отладки и выпуска.

Нет необходимости в различных файлах google-services.json, как указано выше. Вместо этого в Firebase вы создаете проект. Каждый проект может иметь несколько приложений (даже на разных платформах).

В моем случае, например, у меня есть два типа сборки (debug и release) и два productFlavors, в результате чего 4 приложения с разными именами пакетов:

  • Пол: Мужской
  • FullRelease: com.company.myapp
  • DemoDebug: com.company.myapp.demo.debug
  • DemoRelease: com.company.myapp.demo

Один файл google-services.json охватывает все эти варианты и должен просто быть помещен в модуль приложения вашего проекта Android Studio.