Sorun giderme & Android ve Firebase ile ilgili SSS

Bu sayfada, Firebase'i kullanırken karşılaşabileceğiniz Android'e özgü sorunlarla ilgili ipuçları ve sorun giderme adımları sunulmaktadır.

Başka sorunlarınız mı var yoksa sorununuzun aşağıda açıklanmadığını mı düşünüyorsunuz? Firebase'e genel veya ürüne özel daha fazla SSS için ana Firebase SSS sayfasını inceleyin.

Bildirilen sorunların güncel listesini ve sorun giderme adımlarını görmek için Firebase Android SDK GitHub deposuna da göz atabilirsiniz. Firebase Android SDK'sıyla ilgili kendi sorunlarınızı da buraya bildirmenizi öneririz.

SHA-1 bilgileri, Firebase Authentication (Google ile oturum açma veya telefon numarası ile oturum açma kullanılırken) ve Firebase Dynamic Links tarafından zorunlu tutulur. Bu özellikleri kullanmıyorsanız SHA-1 sağlamanız gerekmez.

Bu hata, başka bir Firebase veya Google Cloud projesinin, belirttiğiniz paket adını ve SHA-1'i içeren bir OAuth 2.0 istemci kimliği içerdiğini tespit ettiğimizde meydana gelir. Bu hatayı nasıl çözeceğinizi öğrenin.

Bu hata genellikle uygulamanızda Google'ın Maven deposuna yönelik bir veya daha fazla referansın eksik olduğu anlamına gelir. Gradle yapılandırma dosyanıza Google'ın Maven deposunu (google()) eklediğinizden emin olun.

  • Projenizde plugins söz dizimi kullanılıyorsa bunu settings.gradle.kts veya settings.gradle dosyanızdaki plugins bölümüne ekleyin.
  • Projenizde buildscript söz dizimi kullanılıyorsa bunu proje düzeyindeki build.gradle.kts veya build.gradle dosyanızdaki hem buildscript hem de allprojects bölümlerine ekleyin.

Mayıs 2021'de (Firebase BoM v28.0.0), Firebase tüm Android kitaplıkları için şeker azaltmayı devre dışı bıraktı (sürüm notuna bakın).

Bu değişiklik, Android Gradle eklentisi (AGP) 4.2 veya önceki sürümleri kullanan Gradle derlemelerinde Java 8 desteğinin etkinleştirilmesi gerektiği anlamına gelir. Aksi takdirde, Firebase SDK'sı eklenirken bu Android projelerinde aşağıdaki derleme hatası meydana gelir:

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.

Bu derleme hatasını düzeltmek için iki seçenekten birini uygulayabilirsiniz:

  • Hata mesajında listelenen compileOptions öğesini uygulama düzeyindeki build.gradle.kts veya build.gradle dosyanıza ekleyin.
  • Android projenizin minSdkVersion değerini 26 veya daha yüksek bir değere yükseltin.

Bunun iki nedeni olabilir: Destek e-postası sağlamamışsınızdır veya SHA anahtarınız eksiktir. Bu hatayı düzeltmek için aşağıdaki koşulların tamamının geçerli olduğundan emin olun:

Firebase'de aşağıdaki Gradle eklentileri bulunur:

Eklenti adı Maven koordinatları Son sürüm Eklenti kimliği
Google Play Hizmetleri eklentisi com.google.gms:google-services 4.4.2 com.google.gms.google-services
App Distribution eklenti com.google.firebase:firebase-appdistribution-gradle 5.1.1 com.google.firebase.appdistribution
Crashlytics eklenti com.google.firebase:firebase-crashlytics-gradle 3.0.3 com.google.firebase.crashlytics
Performance Monitoring eklenti com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

buildscript söz dizimini hâlâ kullanan bir Android projesine Firebase eklentisi eklemek için:

  1. Kök düzeyindeki (proje düzeyindeki) Gradle dosyanıza (<project>/build.gradle.kts veya <project>/build.gradle) eklentiyi Maven koordinatlarını kullanarak bağımlı olarak ekleyin:

    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. Modül (uygulama düzeyi) Gradle dosyanıza (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) eklenti kimliğini kullanarak eklentiyi ekleyin:

    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'
        ...
    }