שליחת הודעת בדיקה לאפליקציה שפועלת ברקע

כדי להתחיל להשתמש ב-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. לעיתים קרובות, רישום האפליקציה נקרא 'הוספת' האפליקציה לפרויקט.

  1. נכנסים אל מסוף Firebase.

  2. במרכז דף הסקירה הכללית של הפרויקט, לוחצים על סמל Android. () או על הוספת אפליקציה כדי להפעיל את תהליך ההגדרה.

  3. מזינים את שם החבילה של האפליקציה בשדה שם החבילה של Android.

  4. (אופציונלי) מזינים פרטים נוספים על האפליקציה: כינוי האפליקציה ואישור חתימת ניפוי באגים SHA-1.

  5. לוחצים על רישום האפליקציה.

הוספת קובץ תצורה של Firebase

  1. מורידים את קובץ התצורה של Firebase ל-Android ואז מוסיפים אותו (google-services.json) לאפליקציה שלך:

    1. לוחצים על Download google-services.json כדי להוריד את Firebase ל-Android קובץ תצורה.

    2. מעבירים את קובץ התצורה לספריית הבסיס (root) של המודול (ברמת האפליקציה) של באפליקציה שלך.

  2. כדי שהערכים בקובץ התצורה google-services.json יהיו נגישים בשביל ערכות Firebase SDK, אתם צריכים הפלאגין של Gradle לשירותי Google (google-services).

    1. בקובץ 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
      }
    2. בקובץ 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 לאפליקציה

  1. בקובץ 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")
    }
    מחפשים מודול ספרייה ספציפי ל-Kotlin? מתחיל בעוד אוקטובר 2023 (Firebase BoM 32.5.0), גם מפתחי Kotlin וגם מפתחי Java יכולים תלויות במודול הספרייה הראשי (לקבלת פרטים נוספים, אפשר לעיין שאלות נפוצות על היוזמה).

  2. סנכרון פרויקט 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);
}

אחרי שתקבלו את הטוקן, תוכלו לשלוח אותו לשרת האפליקציה ולאחסן אותו בשיטה המועדפת עליכם.

שליחת הודעת בדיקה

  1. צריך להתקין את האפליקציה ולהפעיל אותה במכשיר היעד. במכשירי Apple, צריך כדי לאשר את בקשת ההרשאה לקבלת התראות מרחוק.

  2. מוודאים שהאפליקציה פועלת ברקע במכשיר.

  3. במסוף Firebase, פותחים את הדף 'העברת הודעות'.

  4. אם זו ההודעה הראשונה שלכם, צריך לבחור באפשרות ליצירת הודעה ראשונה .

    1. בוחרים באפשרות התראות ב-Firebase ואז באפשרות יצירה.
  5. אחרת, בכרטיסייה קמפיינים בוחרים באפשרות קמפיין חדש. ואז התראות.

  6. מזינים את הטקסט של ההודעה. כל שאר השדות הם אופציונליים.

  7. בוחרים באפשרות שליחת הודעת בדיקה בחלונית השמאלית.

  8. בשדה הוספת אסימון רישום של FCM, מזינים את נתוני הרישום. שקיבלתם בקטע הקודם במדריך הזה.

  9. בוחרים באפשרות בדיקה.

אחרי שבוחרים באפשרות בדיקה, מכשיר הלקוח המטורגט (כשהאפליקציה מופעלת בו) רקע) מקבלים את ההתראה.

לקבלת תובנות לגבי מסירת ההודעות לאפליקציה שלך: ה FCM במרכז הבקרה לדיווח, שבו נרשם מספר ההודעות שנשלחו ונפתחו במכשירי Apple ו-Android, יחד עם נתונים לגבי 'חשיפות' (התראות שמשתמשים רואים) באפליקציות ל-Android.

השלבים הבאים

שליחת הודעות לאפליקציות שפועלות בחזית

לאחר שתשלחו בהצלחה הודעות התראה בזמן שהאפליקציה נמצאת הרקע, אפשר לראות קבלת הודעות באפליקציה ל-Android כדי להתחיל לשלוח לאפליקציות שפועלות בחזית.

מעבר להודעות התראות

כדי לקבל מידע נוסף מעבר להודעות וכדי להוסיף עוד התנהגות מתקדמת יותר של האפליקציה, אפשר לעיין במאמר: