Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

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

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

הגדר את ה- SDK

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

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

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

צור פרויקט Firebase

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

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

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

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

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

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

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

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

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

  1. הוסף את קובץ התצורה של Android ל- Firebase לאפליקציה שלך:

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

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

  2. כדי להפעיל מוצרי Firebase באפליקציה שלך, הוסף את תוסף שירותי Google לקבצי Gradle שלך.

    1. בקובץ build.gradle ברמת השורש (ברמת הפרויקט) ( build.gradle ), הוסף כללים כדי לכלול את התוסף Gradle Services של Google. בדוק שיש לך גם מאגר Maven של גוגל.

      buildscript {
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
        }
      
        dependencies {
          // ...
      
          // Add the following line:
          classpath 'com.google.gms:google-services:4.3.8'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. במודול שלך (ברמת האפליקציה) קובץ Gradle (בדרך כלל app/build.gradle ), החל את התוסף Gradle Services של Google:

      apply plugin: 'com.android.application'
      // Add the following line:
      apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
      android {
        // ...
      }
      

הוסף SDK של Firebase לאפליקציה שלך

  1. באמצעות Firebase Android BoM , הצהירו על התלות בספריית Android של העברת הודעות ענן ב- Firebase במודול שלכם (ברמת האפליקציה) קובץ Gradle (בדרך כלל app/build.gradle ).

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

    ג'אווה

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.1.0')
    
        // Declare 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 {
        // Declare 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:22.0.0'
        implementation 'com.google.firebase:firebase-analytics:19.0.0'
    }
    

    Kotlin + KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.1.0')
    
        // Declare 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-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    על ידי שימוש ב- Firebase Android BoM , היישום שלך ישתמש תמיד בגרסאות תואמות של ספריות Android ל- Firebase.

    (חלופי) הצהיר על תלות בספריית Firebase מבלי להשתמש ב- BoM

    אם תבחר לא להשתמש ב- Firebase BoM, עליך לציין כל גרסת ספריית Firebase בשורת התלות שלה.

    שים לב שאם אתה משתמש במספר ספריות Firebase באפליקציה שלך, אנו ממליצים בחום להשתמש ב- BoM לניהול גרסאות ספרייה, מה שמבטיח שכל הגרסאות תואמות.

    dependencies {
        // Declare 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-ktx:22.0.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:19.0.0'
    }
    

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

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

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

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

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

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

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

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

כאשר אתה צריך לאחזר את האסימון הנוכחי, התקשר ל- FirebaseMessaging.getInstance().getToken() :

ג'אווה

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();
        }
    });

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()
})

צג את יצירת האסימונים

onNewToken בכל פעם שנוצר אסימון חדש.

ג'אווה

/**
 * 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(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);
}

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)
}

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

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

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

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

  3. פתח את מלחין ההודעות ובחר התראה חדשה .

  4. הזן את טקסט ההודעה.

  5. בחר שלח הודעת בדיקה .

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

  7. לחץ על בדוק

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

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

הצעדים הבאים

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

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

חורג ממסר הודעות

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