כדי להתחיל להשתמש ב-FCM, בונים את התרחיש לדוגמה הפשוט ביותר: שליחת הודעת בדיקה מאת כתיבת התראות למכשיר פיתוח כשהאפליקציה פועלת ברקע במכשיר. בדף הזה מפורטים כל השלבים לביצוע הפעולה הזו, החל מהגדרה ועד לאימות – יכול להיות שהיא תכסה שלבים שכבר השלמתם, הגדירו אפליקציית לקוח ל-Android עבור FCM.
הגדרת ה-SDK
בקטע הזה מפורטות משימות שאולי כבר ביצעתם אם כבר הפעלתם באפליקציה תכונות אחרות של Firebase.
לפני שמתחילים
מתקינים את Android Studio או מעדכנים אותו לגרסה האחרונה.
עליכם לוודא שהפרויקט עומד בדרישות הבאות (שימו לב: למוצרים מסוימים יכולות להיות דרישות מחמירות יותר):
- יעדים ברמת API 19 (KitKat) ומעלה
- משתמש ב-Android מגרסה 4.4 ומעלה
- משתמשים ב-Jetpack (AndroidX), שצריך לעמוד בדרישות הגרסה הבאות:
com.android.tools.build:gradle
גרסה 7.3.0 ואילךcompileSdkVersion
28 ואילך
מגדירים מכשיר פיזי או משתמשים במכונה וירטואלית כדי להריץ את האפליקציה.
חשוב לזכור שחבילות Firebase SDK עם תלות ב-Google Play Services מחייבות התקנה של Google Play Services במכשיר או במכונה הווירטואלית.נכנסים ל-Firebase באמצעות חשבון Google. חשבון.
אם עדיין אין לכם פרויקט ב-Android ואתם רוצים רק להתנסות ב-Firebase תוכלו להוריד אחת מדוגמאות למתחילים.
יוצרים פרויקט Firebase
לפני שתוכלו להוסיף את Firebase לאפליקציה ל-Android, תצטרכו ליצור פרויקט Firebase כדי לקשר אותו לאפליקציה. במאמר הסבר על פרויקטים ב-Firebase מוסבר בהרחבה על פרויקטים ב-Firebase.
רישום האפליקציה ב-Firebase
כדי להשתמש ב-Firebase באפליקציה ל-Android, צריך לרשום את האפליקציה ב פרויקט Firebase. לעיתים קרובות, רישום האפליקציה נקרא 'הוספת' האפליקציה לפרויקט.
נכנסים אל מסוף Firebase.
במרכז דף הסקירה הכללית של הפרויקט, לוחצים על סמל Android. (
) או על הוספת אפליקציה כדי להפעיל את תהליך ההגדרה.מזינים את שם החבילה של האפליקציה בשדה שם החבילה של Android.
(אופציונלי) מזינים פרטים נוספים על האפליקציה: כינוי האפליקציה ואישור חתימת ניפוי באגים SHA-1.
לוחצים על רישום האפליקציה.
הוספת קובץ תצורה של Firebase
מורידים את קובץ התצורה של Firebase ל-Android ואז מוסיפים אותו (
) לאפליקציה שלך:google-services.json לוחצים על Download google-services.json כדי להוריד את Firebase ל-Android קובץ תצורה.
מעבירים את קובץ התצורה לספריית הבסיס (root) של המודול (ברמת האפליקציה) של באפליקציה שלך.
כדי שהערכים בקובץ התצורה
יהיו נגישים בשביל ערכות Firebase SDK, אתם צריכים הפלאגין של Gradle לשירותי Google (google-services.json google-services
).בקובץ Gradle ברמת השורש (ברמת הפרויקט) (
<project>/build.gradle.kts
או<project>/build.gradle
), מוסיפים את הפלאגין של שירותי Google כתלות:Kotlin
plugins { id("com.android.application") version "7.3.0" apply false // ... // Add the dependency for the Google services Gradle plugin id("com.google.gms.google-services") version "4.4.2" apply false }
Groovy
plugins { id 'com.android.application' version '7.3.0' apply false // ... // Add the dependency for the Google services Gradle plugin id 'com.google.gms.google-services' version '4.4.2' apply false }
בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל
<project>/<app-module>/build.gradle.kts
או<project>/<app-module>/build.gradle
), מוסיפים את הפלאגין של שירותי Google:Kotlin
plugins { id("com.android.application") // Add the Google services Gradle plugin id("com.google.gms.google-services") // ... }
Groovy
plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' // ... }
הוספה של ערכות Firebase SDK לאפליקציה
בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל
<project>/<app-module>/build.gradle.kts
או<project>/<app-module>/build.gradle
), מוסיפים את התלות בספריית Firebase Cloud Messaging ל-Android. מומלץ להשתמש ב-Firebase Android BoM כדי לשלוט בגרסאות הספרייה.כדי ליהנות מחוויה אופטימלית עם Firebase Cloud Messaging, מומלץ הפעלת Google Analytics בפרויקט Firebase והוספת ה-SDK של Firebase ל-Google Analytics לאפליקציה.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.0")) // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-messaging") implementation("com.google.firebase:firebase-analytics") }
באמצעות Firebase Android BoM, האפליקציה שלכם תשתמש תמיד בגרסאות תואמות של ספריות Android של Firebase.
(חלופה) מוסיפים יחסי תלות של ספריית Firebase בלי להשתמש ב-BoM
אם בוחרים לא להשתמש ב-Firebase BoM, צריך לציין את כל הגרסאות של ספריות Firebase בשורת התלות שלהן.
שימו לב: אם אתם משתמשים במספר ספריות של Firebase באפליקציה, מומלץ מאוד להשתמש ב-BoM כדי לנהל את הגרסאות של הספריות, וכך לוודא שכל הגרסאות תואמות.
dependencies { // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-messaging:24.0.1") implementation("com.google.firebase:firebase-analytics:22.1.0") }
סנכרון פרויקט Android עם קובצי Gradle.
גישה לאסימון הרישום
כדי לשלוח הודעה למכשיר ספציפי, עליך לדעת מהו המכשיר אסימון הרישום. מכיוון שתצטרכו להזין את האסימון בשדה במסוף ההתראות כדי להשלים את המדריך הזה, חשוב להעתיק את האסימון או לאחסן אותו באופן מאובטח לאחר האחזור.
בזמן ההפעלה הראשונית של האפליקציה, ה-SDK של FCM יוצר רישום
אסימון למופע של אפליקציית הלקוח. אם רוצים לטרגט מכשירים בודדים או
ליצור קבוצות מכשירים, כדי לגשת לאסימון הזה באמצעות הרחבה
FirebaseMessagingService
ושינוי של onNewToken
.
בקטע הזה נסביר איך מאחזרים את האסימון ואיך עוקבים אחרי שינויים לאסימון. כי אפשר לבצע רוטציה של האסימון אחרי האות הראשונית הפעלה, מומלץ מאוד לאחזר את נתוני הרישום המעודכנים ביותר ב-Assistant.
אסימון הרישום עשוי להשתנות במקרים הבאים:
- האפליקציה משוחזרת במכשיר חדש
- המשתמש מסיר את האפליקציה או מתקין אותה מחדש
- המשתמש מנקה את נתוני האפליקציה.
אחזור של טוקן הרישום הנוכחי
כשצריך לאחזר את האסימון הנוכחי, קוראים
FirebaseMessaging.getInstance().getToken()
:
Kotlin+KTX
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "Fetching FCM registration token failed", task.exception) return@OnCompleteListener } // Get new FCM registration token val token = task.result // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Java
FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (!task.isSuccessful()) { Log.w(TAG, "Fetching FCM registration token failed", task.getException()); return; } // Get new FCM registration token String token = task.getResult(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
מעקב אחרי יצירת אסימון
קריאת החזרה (callback) של onNewToken
מופעלת בכל פעם שנוצר טוקן חדש.
Kotlin+KTX
/** * Called if the FCM registration token is updated. This may occur if the security of * the previous token had been compromised. Note that this is called when the * FCM registration token is initially generated so this is where you would retrieve the token. */ override fun onNewToken(token: String) { Log.d(TAG, "Refreshed token: $token") // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token) }
Java
/** * There are two scenarios when onNewToken is called: * 1) When a new token is generated on initial app startup * 2) Whenever an existing token is changed * Under #2, there are three scenarios when the existing token is changed: * A) App is restored to a new device * B) User uninstalls/reinstalls the app * C) User clears app data */ @Override public void onNewToken(@NonNull String token) { Log.d(TAG, "Refreshed token: " + token); // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token); }
אחרי שתקבלו את הטוקן, תוכלו לשלוח אותו לשרת האפליקציה ולאחסן אותו בשיטה המועדפת עליכם.
שליחת הודעת בדיקה
צריך להתקין את האפליקציה ולהפעיל אותה במכשיר היעד. במכשירי Apple, צריך כדי לאשר את בקשת ההרשאה לקבלת התראות מרחוק.
מוודאים שהאפליקציה פועלת ברקע במכשיר.
במסוף Firebase, פותחים את הדף 'העברת הודעות'.
אם זו ההודעה הראשונה שלכם, צריך לבחור באפשרות ליצירת הודעה ראשונה .
- בוחרים באפשרות התראות ב-Firebase ואז באפשרות יצירה.
אחרת, בכרטיסייה קמפיינים בוחרים באפשרות קמפיין חדש. ואז התראות.
מזינים את הטקסט של ההודעה. כל שאר השדות הם אופציונליים.
בוחרים באפשרות שליחת הודעת בדיקה בחלונית השמאלית.
בשדה הוספת אסימון רישום של FCM, מזינים את נתוני הרישום. שקיבלתם בקטע הקודם במדריך הזה.
בוחרים באפשרות בדיקה.
אחרי שבוחרים באפשרות בדיקה, מכשיר הלקוח המטורגט (כשהאפליקציה מופעלת בו) רקע) מקבלים את ההתראה.
לקבלת תובנות לגבי מסירת ההודעות לאפליקציה שלך: ה FCM במרכז הבקרה לדיווח, שבו נרשם מספר ההודעות שנשלחו ונפתחו במכשירי Apple ו-Android, יחד עם נתונים לגבי 'חשיפות' (התראות שמשתמשים רואים) באפליקציות ל-Android.
השלבים הבאים
שליחת הודעות לאפליקציות שפועלות בחזית
לאחר שתשלחו בהצלחה הודעות התראה בזמן שהאפליקציה נמצאת הרקע, אפשר לראות קבלת הודעות באפליקציה ל-Android כדי להתחיל לשלוח לאפליקציות שפועלות בחזית.
מעבר להודעות התראות
כדי לקבל מידע נוסף מעבר להודעות וכדי להוסיף עוד התנהגות מתקדמת יותר של האפליקציה, אפשר לעיין במאמר: