Изменение имени пакета Firebase

#android #firebase #firebase-authentication

#Android #firebase #firebase-аутентификация

Вопрос:

У меня есть приложение для входа в Google, интегрированное с Firebase. Недавно я изменил название пакета приложения для целей выпуска. и теперь запуск выдает эту ошибку:

 Error:Execution failed for task ':app:processDebugGoogleServices'.
> No matching client found for package name '<Package Name>'
  

Итак, я предполагаю, что Firebase не может распознать приложение с новым именем пакета. Как я могу изменить имя пакета Firebase. Я прошел через Firebase console, но не могу найти никаких изменяющихся настроек пакета. Или есть какой-нибудь хороший способ добиться этого вместо повторного создания нового проекта с именем пакета и кодом? Буду признателен за любую помощь.

Комментарии:

1. Добавьте другое приложение с новым пакетом в свой проект Firebase.

Ответ №1:

Как прокомментировал Eurosecom, вы можете просто добавить новое приложение для Android в свой существующий проект Firebase с новым именем пакета. После этого загрузите обновленные google-сервисы.json и добавьте его в свое приложение.

Обратите внимание, что Firebase не использует фактическое имя пакета из вашего Java-кода, но использует applicationId из файла build.gradle вашего приложения:

 defaultConfig {
    applicationId "com.firebase.hearthchat"
  

При первоначальном создании проекта в Android Studio имя пакета и идентификатор приложения будут иметь одинаковое значение. Но если вы преобразуете свой код в другой пакет, идентификатор приложения обновляться не будет. Это объясняет, почему приложение продолжит работать после такого рефакторинга. Но иногда это может сбивать с толку, поэтому я предпочитаю синхронизировать их.

Комментарии:

1. Вам нужно повторно добавить все ключи SHA1 и другие вещи? Или мне просто сделать в точности то, что вы сделали?

2. В связи с этим вопросом, возможно ли использовать какое-то подстановочное имя пакета для входа в Google? Потому что я подумал, что если мне нужно отправить, скажем, 100 приложений в месяц с функцией входа в Google, я не хочу создавать 100 приложений на консоли Firebase. Можете ли вы, ребята, что-нибудь придумать для этого? Заранее спасибо

3. Итак, это сработает, если я изменю имя пакета моего проекта и создам новое приложение в firebase, добавлю ключ SHA-1 и обновлю json в приложении?

Ответ №2:

Если вы используете Firebase assistant, то:

  • Удалите свое приложение в консоли Firebase в настройках проекта.
  • Вернитесь в Firebase assistant и повторно подключитесь к Firebase для любой службы.
  • Он попросит вас синхронизироваться с проектом. Нажмите на синхронизацию.
  • Приложение с новым пакетом будет добавлено, и google-services.json файл будет автоматически обновлен.

Также обратите внимание, что имя пакета, соответствующее applicationId значению в build.gradle файле, учитывается.

Приветствия

Ответ №3:

Есть лучший способ решить эту проблему.Ошибка может быть вызвана тем, что у вас есть файл GoogleService Json в папке вашего приложения, все, что вам нужно сделать, это; попробуйте найти ваш файл google-service.json в папке приложения и измените package_Id на новый package_id, который вы создали; Сохраните, выполните очистку и перестройте проект, ваша проблема будет решена. Надеюсь, это вам поможет. У меня это работает. Вы можете любезно проголосовать, если это также поможет вам. Спасибо

Комментарии:

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

2. @hiddeneyes02 это зависит от того, как вы импортировали и синхронизировали свой проект, когда вы поместили файл Firebase Gson в папку вашего приложения. То, что я указал, на самом деле сработало для меня, и нет единого способа получить результаты. и обратите внимание; приведенное выше сообщение об ошибке всегда появляется при изменении вашего package_name после того, как вы уже разместили сгенерированный GsonFile из firebase, и оно выдает ошибку, потому что package_name больше не соответствует тому, что находится внутри GsonFile. Поэтому его необходимо изменить на недавнее package_name. Надеюсь, вы поняли мою точку зрения. вам не нужно голосовать против этого. спасибо

3. Да, это работает, но так не должно быть. Не имеет смысла, что приложение, объявленное с одним именем пакета и зарегистрированное в firebase с другим именем пакета, и они все еще связаны друг с другом. Это определенно ошибка от Google, и нет никаких гарантий, что это не сломается в будущем. Пожалуйста, отредактируйте свой ответ, чтобы я мог отменить голосование и принести извинения.

4. ФУ, вот официальная позиция Google по этой проблеме: «Чтобы объяснить, почему это работает на основе выполненных вами шагов, клиентское приложение все равно получит сообщение, потому что FCM ссылается на идентификатор приложения, который автоматически генерируется при регистрации приложения, при отправке сообщений. При этом не рекомендуется вручную изменять файлы конфигурации, изменяя имя пакета приложения. Это может повлиять на отчеты о доставке уведомлений, в которых количество отправлений, поступающих из предполагаемого приложения, может не соответствовать некоторым числам.». Они также говорят, что это изменится в будущем.