בדף הזה מופיעים טיפים ודרכים לפתרון בעיות ספציפיות ל-Android שאתם עשויים להיתקל בהן כשאתם משתמשים ב-Firebase.
נתקלת בבעיות אחרות או שהבעיה שלך לא מופיעה בהמשך? מומלץ לעיין בשאלות הנפוצות הראשיות בנושא Firebase כדי לקבל שאלות נפוצות נוספות בנושא Firebase או שאלות נפוצות ספציפיות למוצרים.
אפשר גם להיכנס למאגר GitHub של Firebase Android SDK כדי לראות רשימה עדכנית של בעיות שדווחו ושל דרכים לפתרון בעיות. מומלץ לשלוח דיווחים על בעיות שקשורות ל-Firebase Android SDK גם שם.
האם צריך לספק SHA-1 כשמוסיפים אפליקציית Android לפרויקט Firebase?
פרטי SHA-1 נדרשים על ידי Firebase Authentication (כשמשתמשים בכניסה באמצעות חשבון Google או בכניסה באמצעות מספר טלפון) וגם על ידי Firebase Dynamic Links. אם אתם לא משתמשים בתכונות האלה, אין צורך לספק SHA-1.
איך פותרים את השגיאה: "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.
- הוספתם את הטביעת האצבע של אישור SHA-1 ממאגר המפתחות של הגרסה המשוחררת או של הייצור לאפליקציית Android ב-Firebase במסוף Firebase (עוברים אל
Project settings , גוללים למטה אל Your apps ובוחרים את אפליקציית Android). - הוספתם את הטביעת האצבע של אישור SHA-1 מהמסוף Google Play לאפליקציית Android של Firebase במסוף Firebase (עוברים אל
Project settings , גוללים למטה אל Your apps ובוחרים את אפליקציית Android).
איך מוסיפים יישומי פלאגין של 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: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 } }בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל
<project>/<app-module>/build.gradle.kts
או<project>/<app-module>/build.gradle
), מוסיפים את הפלאגין באמצעות מזהה הפלאגין: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 ' ... }