сбой приложения при добавлении google login firebaseui - PullRequest
1 голос
/ 07 апреля 2019

Когда мы добавляем эту строку new AuthUI.IdpConfig.GoogleBuilder().build(), приложение вылетает и выдает эту ошибку «Проверьте конфигурацию плагина google-services, строка default_web_client_id не заполнена»
Что делать?Я перепробовал почти все решения, которые предлагаются в GitHub и StackOverflow, но моя проблема не решена.Мой проект работал с пользовательским интерфейсом входа в Google Firebase, и я не знаю, почему он сейчас не работает.
Если я удаляю googlebuilder, то приложение работает без проблем.

implementation 'com.firebaseui:firebase-ui-auth:4.3.2'



 dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
        classpath 'io.fabric.tools:gradle:1.25.4'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files     // in the individual module build.gradle files
       // classpath 'com.google.gms:google-services:3.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
       // classpath 'com.android.tools.build:gradle:3.0.0'
        classpath 'com.google.gms:google-services:4.2.0'
        classpath 'com.google.firebase:firebase-plugins:1.1.5'


    }

Ответы [ 3 ]

0 голосов
/ 08 апреля 2019

Подход, который работал для меня, был следующим:

  1. Вход в консоль Google Cloud
  2. В меню слева выберите API и службы -> Учетные данные
  3. Скопируйте идентификатор клиента из веб-клиента (автоматически созданного службой Google) в разделе «Идентификаторы клиента OAuth 2.0»
  4. Назад в Android Studio, в res -> values ​​-> Strings.xml создайте запись в форме

    <string name="default_web_client_id" translatable="false">XXXXXXX</string>
    

(где XXXXXXX - идентификатор клиента, скопированный из консоли на шаге 3

Перекомпилируйте, теперь приложение должно работать без проблем.
0 голосов
/ 08 апреля 2019

Вместо ручного редактирования google-services.json:

  1. Создание нового Client ID for Web application из облачной консоли Google> API и службы> Учетные данные> Идентификаторы клиента OAuth 2.0 .Важно, чтобы вы выбрали веб-приложение, а не Android.
  2. Обновите (или добавьте) свою отладку, подпись приложения и загрузите SHA-1 отпечатки сертификатов в свои настройки Firebase.
  3. Теперь загрузите последнюю версию google-services.jsonиз настроек Firebase.
  4. Замените старый google-services.json в вашем Project> приложении на новый.
  5. Теперь создайте ваше приложение.Эти шаги заставят Firebase автоматически сгенерировать новый Android client в OAuth 2.0, который будет включать Client ID for Web application, который вы создали вручную.
0 голосов
/ 08 апреля 2019

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

Я сравнил два сгенерированных google-services.json файла и обнаружил, что в одном из сгенерированных мной сегодня отсутствует другой объектв массиве oauth_client

Этот работает - default_web_client_id генерируется:

  "oauth_client": [
    {
      "client_id": "blabalbal-blablabal",
      "client_type": 1,
      "android_info": {
        "package_name": "haha",
        "certificate_hash": "ahaha"
      }
    },
    {
      "client_id": "hahah",
      "client_type": 3
    }
  ],

Я сгенерировал этот сегодня, а default_web_client_id не сгенерирован из этого

  "oauth_client": [
    {
      "client_id": "bababab",
      "client_type": 1,
      "android_info": {
        "package_name": "babab",
        "certificate_hash": "blablbalb"
      }
    }
  ],

Таким образом, у того, кто работает, есть этот дополнительный объект:

  {
      "client_id": "hahah",
      "client_type": 3
   }

, где client_id расположен в облачной консоли Google -> API & Services -> Учетные данные -> Идентификаторы клиента OAuth 2.0 -> «Веб-клиент (автоматически создается службой Google)»

Поэтому я вставляю этот объект обратно как временное решение ...

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