כדי להתחיל להשתמש ב-FCM, כדאי ליצור את תרחיש השימוש הפשוט ביותר: שליחת הודעת בדיקה מ מרכז ההודעות למכשיר פיתוח כשהאפליקציה פועלת ברקע במכשיר. בדף הזה מפורטים כל השלבים שצריך לבצע כדי להשיג את זה, מההגדרה ועד האימות. יכול להיות שחלק מהשלבים כבר בוצעו אם הגדרתם אפליקציית לקוח ל-Android עבור FCM.
הגדרת ה-SDK
בקטע הזה מפורטות משימות שאולי כבר השלמתם אם הפעלתם תכונות אחרות של Firebase באפליקציה שלכם.
לפני שמתחילים
מתקינים את Android Studio או מעדכנים אותו לגרסה האחרונה.
צריך לוודא שהפרויקט עומד בדרישות האלה (שימו לב שלחלק מהמוצרים יש דרישות מחמירות יותר):
- מטרגטת לרמת API 21 (Lollipop) ומעלה
- מכשיר Android מגרסה 5.0 ואילך
- האפליקציה משתמשת ב-Jetpack (AndroidX), שכולל את דרישות הגרסה הבאות:
-
com.android.tools.build:gradle
גרסה 7.3.0 ואילך -
compileSdkVersion
28 ואילך
-
מגדירים מכשיר פיזי או משתמשים באמולטור כדי להריץ את האפליקציה.
שימו לב: כדי להשתמש ב-Firebase SDKs עם תלות בשירותי Google Play, צריך להתקין את שירותי Google Play במכשיר או באמולטור.נכנסים ל-Firebase באמצעות חשבון Google.
אם עדיין אין לכם פרויקט Android ואתם רק רוצים לנסות מוצר של Firebase, אתם יכולים להוריד אחד מהדוגמאות שלנו להפעלה מהירה.
יצירת פרויקט Firebase
לפני שמוסיפים את Firebase לאפליקציית Android, צריך ליצור פרויקט Firebase כדי לקשר אותו לאפליקציית Android. במאמר הסבר על פרויקטים ב-Firebase יש מידע נוסף על פרויקטים ב-Firebase.
רישום האפליקציה ב-Firebase
כדי להשתמש ב-Firebase באפליקציית Android, צריך לרשום את האפליקציה בפרויקט Firebase. רישום האפליקציה נקרא לעיתים קרובות "הוספה" של האפליקציה לפרויקט.
עוברים אל מסוף Firebase.
במרכז הדף 'סקירת הפרויקט', לוחצים על הסמל Android (
) או על הוספת אפליקציה כדי להפעיל את תהליך ההגדרה.מזינים את שם החבילה של האפליקציה בשדה שם החבילה של Android.
(אופציונלי) מזינים פרטים נוספים על האפליקציה: כינוי לאפליקציה ואישור חתימה לניפוי באגים SHA-1.
לוחצים על רישום האפליקציה.
הוספת קובץ הגדרות של Firebase
מורידים את קובץ התצורה של Firebase (
) של האפליקציה ומוסיפים אותו לבסיס הקוד:google-services.json לוחצים על הורדת google-services.json כדי לקבל את קובץ התצורה של Firebase של האפליקציה.
מעבירים את קובץ ההגדרות אל ספריית השורש של המודול (ברמת האפליקציה) של האפליקציה.
כדי שהערכים בקובץ ההגדרות
יהיו נגישים ל-Firebase SDKs, צריך את Google services Gradle plugin (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.3" 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.3' 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' // ... }
הוספת ערכות SDK של Firebase לאפליקציה
בקובץ 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 ולהוסיף את Firebase SDK for Google Analytics לאפליקציה.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.0.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, האפליקציה תמיד תשתמש בגרסאות תואמות של ספריות Firebase ל-Android.
(חלופה) מוסיפים תלויות של ספריות 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:25.0.0") implementation("com.google.firebase:firebase-analytics:23.0.0") }
מסנכרנים את פרויקט Android עם קובצי Gradle.
גישה לטוקן הרישום
כדי לשלוח הודעה למכשיר ספציפי, צריך לדעת את טוקן הרישום של המכשיר. כדי להשלים את המדריך הזה, תצטרכו להזין את האסימון בשדה במסוף ההתראות. לכן, הקפידו להעתיק את האסימון או לשמור אותו בצורה מאובטחת אחרי שתאחזרו אותו.
בהפעלה הראשונית של האפליקציה, FCM SDK יוצר אסימון רישום למופע של אפליקציית הלקוח. אם רוצים לטרגט מכשירים בודדים או ליצור קבוצות של מכשירים, צריך לגשת לטוקן הזה על ידי הרחבת
FirebaseMessagingService
וביטול ברירת המחדל של onNewToken
.
בקטע הזה מוסבר איך לאחזר את האסימון ואיך לעקוב אחרי שינויים באסימון. יכול להיות שהטוקן יוחלף אחרי ההפעלה הראשונית, ולכן מומלץ מאוד לאחזר את טוקן הרישום המעודכן האחרון.
אסימון הרישום עשוי להשתנות במקרים הבאים:
- האפליקציה משוחזרת במכשיר חדש
- המשתמש מסיר את האפליקציה ומתקין אותה מחדש
- המשתמש מוחק את נתוני האפליקציה.
אחזור טוקן הרישום הנוכחי
כשצריך לאחזר את הטוקן הנוכחי, מתקשרים אל
FirebaseMessaging.getInstance().getToken()
:
Kotlin
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
/** * 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 כדי להתחיל לשלוח הודעות לאפליקציות שפועלות בחזית.
מעבר להודעות התראה
כדי להוסיף לאפליקציה התנהגויות אחרות ומתקדמות יותר, מעבר להודעות התראה, אפשר לעיין במאמרים הבאים: