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

כדי להתחיל עם FCM, בנה את מקרה השימוש הפשוט ביותר: שליחת הודעת התראת בדיקה ממחבר ההתראות למכשיר פיתוח כאשר האפליקציה נמצאת ברקע במכשיר. דף זה מפרט את כל השלבים להשגת זאת, מההגדרה ועד לאימות - הוא עשוי לכסות שלבים שכבר השלמת אם הגדרת אפליקציית לקוח אנדרואיד עבור FCM.

הגדר את ה-SDK

חלק זה מכסה משימות שייתכן שהשלמת אם כבר הפעלת תכונות אחרות של Firebase עבור האפליקציה שלך.

לפני שאתה מתחיל

  • התקן או עדכן את Android Studio לגרסה האחרונה שלו.

  • ודא שהפרויקט שלך עומד בדרישות הבאות:

    • ממקד לרמת API 19 (KitKat) ומעלה
    • משתמש ב-Android 4.4 ומעלה
    • משתמש ב-Jetpack (AndroidX) , הכולל עמידה בדרישות הגרסה הבאות:
      • com.android.tools.build:gradle v7.3.0 ואילך
      • compileSdkVersion 28 ואילך
  • הגדר מכשיר פיזי או השתמש באמולטור כדי להפעיל את האפליקציה שלך.
    שים לב ש- SDK של Firebase עם תלות בשירותי Google Play דורשים שהמכשיר או האמולטור יותקנו בשירותי Google Play.

  • היכנס ל-Firebase באמצעות חשבון Google שלך.

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

צור פרויקט Firebase

לפני שתוכל להוסיף את Firebase לאפליקציית Android שלך, עליך ליצור פרויקט Firebase כדי להתחבר לאפליקציית Android שלך. בקר בהבנת פרויקטים של Firebase כדי ללמוד עוד על פרויקטים של Firebase.

רשום את האפליקציה שלך ב-Firebase

כדי להשתמש ב-Firebase באפליקציית Android שלך, עליך לרשום את האפליקציה שלך בפרויקט Firebase שלך. רישום האפליקציה שלך נקרא לעתים קרובות "הוספת" האפליקציה שלך לפרויקט שלך.

  1. עבור אל מסוף Firebase .

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

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

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

  5. לחץ על הרשמה אפליקציה .

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

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

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

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

  2. כדי להפוך את הערכים בקובץ התצורה google-services.json שלך לנגישים ל-SDK של Firebase, אתה צריך את הפלאגין של שירותי Google Gradle ( 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.1" 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.1' 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'
        // ...
      }
      

הוסף ערכות SDK של Firebase לאפליקציה שלך

  1. בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל <project>/<app-module>/build.gradle.kts או <project>/<app-module>/build.gradle ), הוסף את התלות עבור Firebase Cloud ספריית הודעות עבור אנדרואיד. אנו ממליצים להשתמש ב- Firebase Android BoM כדי לשלוט בגירסאות של הספרייה.

    לחוויה אופטימלית עם Firebase Cloud Messaging, אנו ממליצים להפעיל את Google Analytics בפרויקט Firebase שלך ​​ולהוסיף את Firebase SDK עבור Google Analytics לאפליקציה שלך.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.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:23.4.1")
        implementation("com.google.firebase:firebase-analytics:21.6.1")
    }
    
    מחפש מודול ספרייה ספציפי לקוטלין? החל מאוקטובר 2023 (Firebase BoM 32.5.0) , מפתחי Kotlin ו-Java יכולים להיות תלויים במודול הספרייה הראשי (לפרטים, עיין בשאלות הנפוצות לגבי יוזמה זו ).

  2. סנכרן את פרויקט האנדרואיד שלך עם קבצי Gradle.

גש לאסימון הרישום

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

עם ההפעלה הראשונית של האפליקציה שלך, FCM SDK מייצר אסימון רישום עבור מופע אפליקציית הלקוח. אם ברצונך למקד למכשירים בודדים או ליצור קבוצות מכשירים, תצטרך לגשת לאסימון זה על ידי הרחבת FirebaseMessagingService ועקיפה על onNewToken .

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

אסימון הרישום עשוי להשתנות כאשר:

  • האפליקציה משוחזרת במכשיר חדש
  • המשתמש מסיר/מתקין מחדש את האפליקציה
  • המשתמש מנקה את נתוני האפליקציה.

אחזר את אסימון הרישום הנוכחי

כאשר אתה צריך לאחזר את האסימון הנוכחי, התקשר ל- 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();
        }
    });

עקוב אחר יצירת אסימונים

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

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

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

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

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

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

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

  8. בשדה שכותרתו הוסף אסימון רישום של FCM , הזן את אסימון הרישום שהשגת בסעיף קודם של מדריך זה.

  9. בחר בדיקה .

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

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

הצעדים הבאים

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

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

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

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