تحديد المشاكل وحلّها الأسئلة الشائعة حول Android وFirebase

تقدّم هذه الصفحة نصائح وخطوات تحديد المشاكل وحلّها المتعلّقة بنظام التشغيل Android التي قد تواجهها عند استخدام Firebase.

هل لديك مشاكل أخرى أو لا تظهر مشكلتك الموضّحة أدناه؟ يُرجى الاطّلاع على الأسئلة الشائعة الرئيسية حول Firebase للحصول على المزيد من الأسئلة الشائعة حول Firebase بشكل عام أو حول منتج معيّن.

يمكنك أيضًا الاطّلاع على مستودع GitHub لحزمة تطوير البرامج (SDK) لمنصّة Firebase على Android للحصول على قائمة محدّثة بالمشاكل التي تم الإبلاغ عنها وتحديد المشاكل وحلّها. ننصحك بإرسال مشاكلك المتعلّقة بحزمة تطوير البرامج (SDK) لنظام التشغيل Android من Firebase إلى هذا الرابط أيضًا.

معلومات 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 الإصدار 28.0.0)، أوقف Firebase ميزة إزالة رمز Sugar لجميع مكتبات Android (راجِع ملاحظة الإصدار).

يعني هذا التغيير أنّ عمليات إنشاء Gradle التي تستخدم الإصدار 4.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (AGP) أو إصدارًا أقدم يجب أن تفعّل ميزة توافق Java 8. بخلاف ذلك، عند إضافة حزمة تطوير برامج Firebase، تواجه مشاريع 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.1.1 com.google.firebase.appdistribution
المكوّن الإضافي Crashlytics com.google.firebase:firebase-crashlytics-gradle 3.0.3 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'
        ...
    }