Работа с несколькими проектами Firebase в приложении Android для входа в Google - PullRequest
1 голос
/ 17 октября 2019

Мое приложение для Android использует проект GCM, который зарегистрирован в хранилище ключей приложения SHA1. Я использую другой проект Firebase в моем приложении для FCM, который использует другой SHA1. Теперь я хочу интегрировать Google Sign-in в мое приложение, которое потребовало, чтобы SHA1 зарегистрировался для моего приложения для входа в Google. Я не хочу удалять мой SHA1 из проекта GCM для этого. Как я могу импортировать другой проект Firebase, чтобы он больше не требовал моего ключа SHA1.

1 Ответ

1 голос
/ 17 октября 2019
  1. Компонент Google Sign-In для работы на Android, для него требуется SHA-1 (отпечаток ключа, используемого для подписи APK) и имя пакета (например, com.foo.bar) быть зарегистрированным для приложения . Эта комбинация позволяет Google Sign-In знать, какой проект Google API используется конкретным приложением. Данная пара SHA1 и Имя пакета глобально уникальна в Google (и проектах Firebase), , поэтому, если вы попытаетесь добавить ту же пару SHA-1 и имя пакета в обновленный проект Firebase, вы получите ошибкучто клиент OAuth2 уже существует (в проекте Google API) см. изображение

  2. Предупреждение: Если вы видите это, не удаляйте существующий клиентID для приложений в производстве ! Правильный выбор - создать новое приложение с тем же именем вашего пакета в консоли Firebase для обновленного проекта, но не включать SHA1 . Теперь внедрите Google Sign In с Firebase Auth как обычно. В какой-то момент вам нужно будет настроить свой объект параметров Google Sign:

  3. GoogleSignInOptions gso = new GoogleSignInOptions.Builder (GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken (getString (R.string. default_web_client_id)) .requestEmail () .build ();

  4. Строка default_web_client_id здесь используется для установки поля аудитории идентификатора токена. Значение берется из файла google-services.json, который принадлежит проекту Firebase, а не проекту Google. Вам нужно будет заменить его идентификатором клиента из проекта Google. Вы можете использовать любой идентификатор веб-клиента или создать новый: см. Изображение

  5. Далее, снова в проекте Firebase, внесите белый список идентификатора клиента, который вы только что установилиGoogleSignInOptions в разделе «Auth> Провайдеры входа>> Google» консоли Firebase. См. Изображение

  6. Обязательно повторно загрузите google-services.json и добавьте его в свое приложение для Android. На этом этапе ваш проект Firebase будет принимать токены Google ID, сгенерированные вашим проектом Google - поэтому ваше приложение Android с радостью войдет в Google с помощью проекта Google, а затем войдет в ваш проект Firebase с помощью токена Google ID, следуя нормальному подход . Вы сможете совершать аутентифицированные вызовы API Google, связанные с проектом Google API, а также аутентифицированные вызовы API Firebase с помощью проекта Firebase.

  7. Пожалуйста, найдите источник документадля справки

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