Устранение неполадок и усиление; Часто задаваемые вопросы для Android и Firebase

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

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

Вы также можете просмотреть репозиторий Firebase Android SDK GitHub, чтобы получить актуальный список сообщаемых проблем и способы их устранения. Мы также рекомендуем вам сообщать сюда о своих проблемах, связанных с Firebase Android SDK!

Информация SHA-1 требуется для Firebase Authentication (при использовании входа в Google или входа по номеру телефона ) и Firebase Dynamic Links . Если вы не используете эти функции, вам не нужно предоставлять SHA-1.

Эта ошибка возникает, если мы обнаруживаем, что другой проект Firebase или Google Cloud содержит идентификатор клиента OAuth 2.0 с указанным вами именем пакета и SHA-1. Узнайте, как устранить эту ошибку .

Эта ошибка обычно означает, что в вашем приложении отсутствует одна или несколько ссылок на репозиторий Google Maven. Обязательно включите репозиторий Google Maven ( google() ) в свой файл конфигурации Gradle.

  • Если ваш проект использует синтаксис plugins , включите его в раздел plugins в файле settings.gradle.kts или settings.gradle .
  • Если в вашем проекте используется синтаксис buildscript , включите его в разделы buildscript и allprojects в файле build.gradle.kts или build.gradle уровня проекта.

В мае 2021 года ( Firebase BoM v28.0.0) Firebase отключила удаление сахара для всех своих библиотек Android (см. примечания к выпуску ).

Это изменение означает, что сборки Gradle, использующие плагин Android Gradle (AGP) v4.2 или более ранней версии, должны включать поддержку Java 8. В противном случае при добавлении Firebase SDK в этих проектах Android возникает следующая ошибка сборки:

D8: Invoke-customs are only supported starting with Android O (--min-api 26)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle
android {
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}
See https://developer.android.com/studio/write/java8-support.html for details.
Alternatively, increase the minSdkVersion to 26 or above.

Чтобы исправить этот сбой сборки, вы можете воспользоваться одним из двух вариантов:

  • Добавьте перечисленные compileOptions из сообщения об ошибке в файл build.gradle.kts или build.gradle уровня приложения .
  • Увеличьте minSdkVersion для вашего проекта Android до 26 или выше.

Это может произойти по двум возможным причинам: вы не предоставили адрес электронной почты службы поддержки или вам не хватает ключа SHA. Чтобы исправить эту ошибку, убедитесь, что все эти условия верны:

Firebase имеет следующие плагины Gradle:

Название плагина Координаты Maven Последняя версия Идентификатор плагина
Плагин сервисов Google Play com.google.gms:google-services 4.4.2 com.google.gms.google-services
Плагин App Distribution com.google.firebase:firebase-appdistribution-gradle 5.0.0 com.google.firebase.appdistribution
Плагин Crashlytics com.google.firebase:firebase-crashlytics-gradle 3.0.2 com.google.firebase.crashlytics
Плагин Performance Monitoring com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

Вот как добавить плагин Firebase в проект Android, который по-прежнему использует синтаксис buildscript :

  1. В файле Gradle корневого уровня (уровня проекта) ( <project>/build.gradle.kts или <project>/build.gradle ) добавьте плагин в качестве зависимости, используя его координаты Maven:

    KotlinGroovy
    buildscript {
    
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
    
        dependencies {
          ...
    
          // Add the Maven coordinates and latest version of the plugin
          classpath ("PLUGIN_MAVEN_COORDINATES:PLUGIN_VERSION")
        }
    }
    
    allprojects {
      ...
    
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    }
    
    buildscript {
    
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
    
        dependencies {
          ...
    
          // Add the Maven coordinates and latest version of the plugin
          classpath 'PLUGIN_MAVEN_COORDINATES:PLUGIN_VERSION'
        }
    }
    
    allprojects {
      ...
    
      repositories {
        // Make sure that you have the following two repositories
        google()  // Google's Maven repository
        mavenCentral()  // Maven Central repository
      }
    }
    
  2. В файле Gradle вашего модуля (на уровне приложения) (обычно <project>/<app-module>/build.gradle.kts или <project>/<app-module>/build.gradle ) добавьте плагин, используя его идентификатор плагина. :

    KotlinGroovy
    plugins {
        id("com.android.application")
    
        // Add the ID of the plugin
        id("FIREBASE_PLUGIN_ID")
        ...
    }
    
    plugins {
        id 'com.android.application'
    
        // Add the ID of the plugin
        id 'FIREBASE_PLUGIN_ID'
        ...
    }