Настройка Firebase для отладки и выпуска с помощью базы данных dev и release - PullRequest
0 голосов
/ 10 мая 2018

У меня есть два типа сборки - debug и release - и два варианта, dev и prod.

Различие простое: debug - двоичный файл с возможностью отладки, release оптимизирован, удален код отладки и Proguard.

dev предназначен для подключения к проекту разработки Firebase, prod для фактической рабочей базы данных.

В некоторых случаях я хотел бы использовать debug в базе данных prod, поэтому у меня есть все четыре возможных комбинации. Проблема заключается в том, что для настроек проекта в Firebase требуется отпечаток SHA1 ключа подписи двоичного файла, а при создании отлаживаемого приложения всегда используется ключ отладки.

У меня не может быть одного и того же ключа в двух проектах Firebase, поэтому наличие ключа подписи отладки в проекте dev Firebase означает, что у меня его также не может быть в prod, поэтому я не могу использовать настройку "prodDebug" ( т.е. база данных prod с отлаживаемым двоичным файлом).

Как правильно решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Недостающий элемент в настройке описан в статье Medium , опубликованной в комментарии Фазана Чена.

Firebase не позволяет использовать одну и ту же клавишу SHA1 для одного и того же идентификатора приложения . Это означает, что мы можем обойти эту проблему, изменяя идентификатор приложения в каждом варианте.

В частности, это можно сделать с помощью applicationIdSuffix, который добавляет строку к идентификатору приложения. Например:

productFlavors {
    dev {
        applicationIdSuffix '.dev'
        versionNameSuffix "-dev"
        dimension 'env'
    }
    prod {
        versionNameSuffix "-prod"
        dimension 'env'
    }
}

Если идентификатор вашего приложения равен com.foo.myapplication, то у варианта разработки будет идентификатор com.foo.myapplication.dev. Теперь вы можете создать отдельный проект Firebase с этим новым идентификатором и повторно использовать те же ключи SHA1.

0 голосов
/ 10 мая 2018

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

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

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

app/src/
    flavor1/google-services.json
    flavor2/google-services.json
    flavor3/google-services.json

Если вы хотите узнать больше о том, как работает этот плагин, просмотрите: https://github.com/googlesamples/google-services/issues/54#issuecomment-165824720

Надеюсь, что это вам поможет!

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...