בדף הזה מופיעים טיפים ודרכים לפתרון בעיות ספציפיות ל-Android שאתם עשויים להיתקל בהן כשאתם משתמשים ב-Firebase.
נתקלת בבעיות אחרות או שהבעיה שלך לא מופיעה בהמשך? מומלץ לעיין בשאלות הנפוצות הראשיות בנושא Firebase כדי לקבל שאלות נפוצות נוספות בנושא Firebase או שאלות נפוצות ספציפיות למוצרים.
אפשר גם להיכנס למאגר GitHub של Firebase Android SDK כדי לראות רשימה עדכנית של בעיות שדווחו ושל דרכים לפתרון בעיות. מומלץ לשלוח דיווחים על בעיות שקשורות ל-Firebase Android SDK גם שם.
איך פותרים את השגיאה: "An OAuth2 client already exists for this
package name and SHA-1 in another project"?
השגיאה הזו מתרחשת אם אנחנו מזהים שפרויקט אחר ב-Firebase או ב-Google Cloud מכיל מזהה לקוח של OAuth 2.0 עם שם החבילה ו-SHA-1 שציינתם. כך פותרים את השגיאה הזו
כשמוסיפים את Firebase לפרויקט Android, מופיעה הודעת השגיאה 'לא ניתן למצוא'.
בדרך כלל, השגיאה הזו מופיעה אם באפליקציה חסר אזכור אחד לפחות למאגר Maven של Google. חשוב לכלול את מאגר Maven של Google (google()
) בקובץ ההגדרה של Gradle.
- אם בפרויקט שלכם נעשה שימוש בתחביר
plugins
, צריך לכלול אותו בקטע plugins
בקובץ settings.gradle.kts
או בקובץ settings.gradle
.
- אם בפרויקט שלכם נעשה שימוש בתחביר
buildscript
, צריך לכלול אותו גם בקטעים buildscript
וגם בקטעים allprojects
בקובץ build.gradle.kts
או בקובץ build.gradle
ברמת הפרויקט.
כשמוסיפים Firebase SDK לפרויקט Android, מופיעה הודעת שגיאה לגבי תמיכה ב-invoke-custom והפעלת הסרת סוכר.
במאי 2021 (Firebase BoM v28.0.0), השבתנו את הסרת הסוכר מכל הספריות של Firebase ל-Android (ראו הערה לגרסה).
כתוצאה מהשינוי הזה, ב-builds של Gradle שמשתמשים בפלאגין של Android Gradle (AGP) בגרסה 4.2 ואילך צריך להפעיל תמיכה ב-Java 8. אחרת, כשמוסיפים Firebase SDK, בפרויקטים האלה ל-Android מופיעה הודעת השגיאה הבאה לגבי ה-build:
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.
כדי לפתור את התקלה ב-build, אפשר לפעול לפי אחת משתי האפשרויות הבאות:
- מוסיפים את הערך של
compileOptions
שמופיע בהודעת השגיאה לקובץ build.gradle.kts
או build.gradle
ברמת האפליקציה.
- צריך להגדיל את הערך של
minSdkVersion
בפרויקט Android ל-26 ומעלה.
אחרי שפרסמתי את האפליקציה, מופיעה השגיאה '12500:' בכניסה לחשבון Google. איך אפשר לתקן את זה?
יש שתי סיבות אפשריות לכך: לא ציינת אימייל לתמיכה או שחסרה מפתח SHA. כדי לתקן את השגיאה הזו, צריך לוודא שכל התנאים הבאים מתקיימים:
איך מוסיפים יישומי פלאגין של Firebase לפרויקט Android באמצעות התחביר buildscript
?
ל-Firebase יש את הפלאגינים הבאים ל-Gradle:
שם הפלאגין |
קואורדינטות Maven |
הגרסה העדכנית ביותר |
מזהה הפלאגין |
הפלאגין של Google Play Services |
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
:
בקובץ Gradle ברמת השורש (ברמת הפרויקט) (<project>/build.gradle.kts
או <project>/build.gradle
), מוסיפים את הפלאגין כיחסי תלות באמצעות הקואורדינטות שלו ב-Maven:
Kotlin
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
}
}
Groovy
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
}
}
בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל <project>/<app-module>/build.gradle.kts
או <project>/<app-module>/build.gradle
), מוסיפים את הפלאגין באמצעות מזהה הפלאגין:
Kotlin
plugins {
id("com.android.application")
// Add the ID of the plugin
id("FIREBASE_PLUGIN_ID")
...
}
Groovy
plugins {
id 'com.android.application'
// Add the ID of the plugin
id 'FIREBASE_PLUGIN_ID'
...
}