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 gặp phải vấn đề khác hoặc không thấy vấn đề của mình được nêu ở bên dưới? Hãy nhớ xem các câu hỏi thường gặp chính về Firebase để biết thêm câu hỏi thường gặp về Firebase nói chung hoặc về từng sản phẩm.

Bạn cũng có thể xem kho lưu trữ GitHub của SDK Firebase Android để biết danh sách mới nhất về các vấn đề đã báo cáo và cách khắc phục sự cố. Bạn cũng nên gửi các vấn đề liên quan đến SDK Firebase cho Android của riêng mình tại đó!

Firebase Authentication (khi sử dụng tính năng đăng nhập bằng Google hoặc đăng nhập bằng số điện thoại) và Firebase Dynamic Links yêu cầu thông tin SHA-1. Nếu không sử dụng các tính năng này, bạn không cần 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 dự án Firebase hoặc Google Cloud khác chứa mã ứng dụng OAuth 2.0 có tên gói và SHA-1 mà bạn đã chỉ định. Tìm hiểu cách giải quyết 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 đến kho lưu trữ Maven của Google. Hãy nhớ thêm kho lưu trữ Maven của Google (google()) vào 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 đưa cú pháp đó vào phần plugins trong tệp settings.gradle.kts hoặc settings.gradle.
  • Nếu dự án của bạn đang sử dụng cú pháp buildscript, hãy đưa cú pháp đó vào cả mục buildscriptallprojects trong tệp build.gradle.kts hoặc build.gradle cấp dự án.

Vào tháng 5 năm 2021 (Firebase BoM v28.0.0), Firebase đã tắt 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 có nghĩa là các bản dựng Gradle sử dụng trình bổ trợ Android cho Gradle (AGP) phiên bản 4.2 trở về trước cần bật tính năng hỗ trợ Java 8. Nếu không, khi thêm SDK Firebase, các dự án Android này sẽ 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 tệp build.gradle.kts hoặc build.gradle cấp ứng dụng.
  • Tăng minSdkVersion cho dự án Android 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 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ã nhận dạng 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ợ App Distribution com.google.firebase:firebase-appdistribution-gradle 5.1.1 com.google.firebase.appdistribution
Trình bổ trợ Crashlytics com.google.firebase:firebase-crashlytics-gradle 3.0.3 com.google.firebase.crashlytics
Trình bổ trợ Performance Monitoring com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

Sau đây là cách thêm trình bổ trợ Firebase vào một 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), hãy thêm trình bổ trợ dưới dạng phần phụ thuộc bằng cách sử dụng toạ độ Maven của trình bổ trợ:

    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 mã nhận dạng 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'
        ...
    }