عیب یابی & سؤالات متداول برای Android و Firebase

این صفحه نکات و عیب‌یابی مشکلات خاص Android را ارائه می‌دهد که ممکن است هنگام استفاده از Firebase با آن مواجه شوید.

چالش های دیگری دارید یا مشکل خود را در زیر نمی بینید؟ حتماً سؤالات متداول اصلی Firebase را برای سؤالات متداول pan-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 است که شما مشخص کرده‌اید، این خطا رخ می‌دهد. یاد بگیرید چگونه این خطا را برطرف کنید .

این خطا معمولاً به این معنی است که برنامه شما یک یا چند مرجع به مخزن Maven Google ندارد. مطمئن شوید که مخزن Maven Google ( 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) نسخه 4.2 یا نسخه‌های قبلی استفاده می‌کنند، باید پشتیبانی از جاوا 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 پروژه اندروید خود را به 26 یا بالاتر افزایش دهید.

دو دلیل احتمالی وجود دارد که چرا این اتفاق می افتد: ایمیل پشتیبانی ارائه نکرده اید یا کلید SHA را از دست داده اید. برای رفع این خطا، مطمئن شوید که همه این شرایط درست است:

Firebase دارای پلاگین های Gradle زیر است:

نام افزونه مختصات Maven آخرین نسخه شناسه افزونه
افزونه خدمات گوگل پلی 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 به یک پروژه اندرویدی که همچنان 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'
        ...
    }