การแก้ปัญหา & คำถามที่พบบ่อยสำหรับ Android และ Firebase

หน้านี้นำเสนอเคล็ดลับและการแก้ปัญหาเฉพาะสำหรับ Android ที่คุณอาจพบเมื่อใช้ Firebase

หากมีความท้าทายอื่นๆ หรือไม่พบปัญหาของคุณตามที่ระบุไว้ด้านล่าง อย่าลืมตรวจสอบว่า โปรดดูคำถามที่พบบ่อยเกี่ยวกับ Firebase หลักสำหรับ Pan-Firebase เพิ่มเติมหรือ คำถามที่พบบ่อยเฉพาะผลิตภัณฑ์

คุณยังดู พื้นที่เก็บข้อมูล GitHub ของ Firebase Android SDK สำหรับรายการล่าสุดของปัญหาที่รายงานเข้ามาและการแก้ปัญหา เราขอแนะนำให้คุณ รายงานปัญหาเกี่ยวกับ Firebase Android SDK ของคุณเองได้อีกด้วย

ข้อมูล SHA-1 ต้องใช้การตรวจสอบสิทธิ์ Firebase (เมื่อใช้ ลงชื่อเข้าใช้ Google หรือ ลงชื่อเข้าใช้หมายเลขโทรศัพท์) และ ลิงก์แบบไดนามิกของ Firebase หากคุณไม่ได้ใช้ ฟีเจอร์เหล่านี้ คุณไม่จำเป็นต้องระบุ SHA-1

ข้อผิดพลาดนี้จะเกิดขึ้นหากเราตรวจพบว่า Firebase หรือ Google Cloud อื่น โปรเจ็กต์มีรหัสไคลเอ็นต์ OAuth 2.0 พร้อมชื่อแพ็กเกจ และ SHA-1 ที่คุณระบุ เรียนรู้วิธีการ แก้ไขข้อผิดพลาดนี้ได้

ข้อผิดพลาดนี้มักหมายความว่าแอปของคุณไม่มีการอ้างอิงอย่างน้อย 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) 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.

หากต้องการแก้ไขความล้มเหลวของบิลด์นี้ ให้ทำตามตัวเลือก 1 ใน 2 ข้อต่อไปนี้

  • เพิ่ม compileOptions ที่แสดงจากข้อความแสดงข้อผิดพลาดลงในระดับแอป build.gradle.kts หรือ build.gradle ไฟล์
  • เพิ่มminSdkVersionสำหรับโปรเจ็กต์ Android เป็น 26 ขึ้นไป

มีสาเหตุที่เป็นไปได้ 2 ประการที่ทำให้เหตุการณ์นี้เกิดขึ้น ได้แก่ คุณยังไม่ได้ระบุ อีเมลฝ่ายสนับสนุน หรือคุณไม่มีคีย์ 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
ปลั๊กอินการตรวจสอบประสิทธิภาพ 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) เพิ่มปลั๊กอินเป็น ทรัพยากร Dependency โดยใช้พิกัด 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'
       
    ...
    }