Khắc phục sự cố & Câu hỏi thường gặp về Android và Firebase

Trang này cung cấp các mẹo và cách khắc phục sự cố dành riêng cho Android mà bạn có thể gặp phải khi sử dụng Firebase.

Bạn có gặp khó khăn khác hoặc không thấy vấn đề của mình được nêu dưới đây? Hãy nhớ kiểm tra xem phần Câu hỏi thường gặp chính về Firebase để biết thêm về pan-Firebase hoặc Câu hỏi thường gặp theo sản phẩm cụ thể.

Bạn cũng có thể xem Kho lưu trữ GitHub cho SDK Android của Firebase để xem danh sách cập nhật các vấn đề được báo cáo và cách khắc phục. Chúng tôi khuyến khích bạn bạn cũng có thể báo cáo các vấn đề liên quan đến SDK Android của Firebase tại đó!

Thông tin về SHA-1 được yêu cầu bởi tính năng Xác thực Firebase (khi sử dụng Đăng nhập vào Google hoặc đăng nhập bằng số điện thoại) và Liên kết động của Firebase. Nếu bạn không sử dụng các tính năng này, bạn không phải cung cấp SHA-1.

Lỗi này xảy ra nếu chúng tôi phát hiện thấy một Firebase hoặc Google Cloud khác dự án chứa ID ứng dụng khách OAuth 2.0 với tên gói và SHA-1 mà bạn đã chỉ định. Tìm hiểu cách khắc phục lỗi này.

Lỗi này thường có nghĩa là ứng dụng của bạn thiếu một hoặc nhiều tệp tham chiếu vào kho lưu trữ Maven của Google. Đừng quên thêm vào kho lưu trữ Maven của Google (google()) trong tệp Cấu hình Gradle.

  • Nếu dự án của bạn đang sử dụng cú pháp plugins, hãy thêm cú pháp đó trong phần plugins trong settings.gradle.kts hoặc settings.gradle.
  • Nếu dự án của bạn sử dụng cú pháp buildscript, hãy thêm trong cả buildscriptallprojects trong build.gradle.kts cấp dự án hoặc build.gradle.

Vào tháng 5 năm 2021 (Firebase BoM v28.0.0), Firebase đã vô hiệu hoá tính năng đơn giản hoá cho tất cả Thư viện Android (xem ghi chú phát hành).

Thay đổi này đồng nghĩa với việc các bản dựng Gradle sử dụng trình bổ trợ Android cho Gradle (AGP) v4.2 hoặc phiên bản cũ hơn cần bật tính năng hỗ trợ Java 8. Nếu không, khi thêm một SDK Firebase, các dự án Android sau đây gặp lỗi bản dựng sau:

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.

Để khắc phục lỗi bản dựng này, bạn có thể làm theo một trong hai cách sau:

  • Thêm compileOptions được liệt kê trong thông báo lỗi vào cấp ứng dụng của bạn build.gradle.kts hoặc build.gradle.
  • Tăng minSdkVersion cho dự án Android của bạn lên 26 trở lên.

Có hai lý do có thể khiến điều này xảy ra: bạn chưa cung cấp email hỗ trợ hoặc bạn bị thiếu khoá SHA. Để khắc phục lỗi này, hãy đảm bảo tất cả các điều kiện sau đều đúng:

Firebase có các trình bổ trợ Gradle sau:

Tên trình bổ trợ Toạ độ Maven Phiên bản mới nhất Mã trình bổ trợ
Trình bổ trợ Dịch vụ Google Play com.google.gms:google-services 4.4.2 com.google.gms.google-services
Trình bổ trợ Phân phối ứng dụng com.google.firebase:firebase-appdistribution-gradle 5.0.0 com.google.firebase.appdistribution
Trình bổ trợ Crashlytics com.google.firebase:firebase-crashlytics-gradle 3.0.2 com.google.firebase.crashlytics
Trình bổ trợ Giám sát hiệu suất com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

Dưới đây là cách thêm trình bổ trợ Firebase vào dự án Android vẫn sử dụng Cú pháp buildscript:

  1. Trong tệp Gradle cấp gốc (cấp dự án) (<project>/build.gradle.kts hoặc <project>/build.gradle), thêm trình bổ trợ dưới dạng một phần phụ thuộc sử dụng toạ độ Maven:

    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. Trong tệp Gradle mô-đun (cấp ứng dụng) (thường là <project>/<app-module>/build.gradle.kts hoặc <project>/<app-module>/build.gradle), hãy thêm trình bổ trợ bằng cách sử dụng mã trình bổ trợ:

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