הגדר אפליקציית לקוח Firebase Cloud Messaging ב-Flutter

בצע את השלבים הבאים כדי להגדיר לקוח FCM ב-Flutter.

הגדרה ודרישות ספציפיות לפלטפורמה

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

iOS+

הפעל יכולות אפליקציה ב-Xcode

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

  1. פתח את סביבת העבודה שלך בפרויקט Xcode ( ios/Runner.xcworkspace ).
  2. אפשר הודעות דחיפה .
  3. הפעל את מצבי הביצוע ברקע של אחזור רקע והודעות מרחוק .

העלה את מפתח האימות של ה-APN שלך

לפני שתשתמש ב-FCM, העלה את אישור ה-APN שלך ל-Firebase. אם עדיין אין לך אישור APNs, צור אחד ב- Apple Developer Member Center .

  1. בתוך הפרויקט שלך במסוף Firebase, בחר בסמל גלגל השיניים, בחר הגדרות פרויקט ולאחר מכן בחר בכרטיסייה הודעות ענן .
  2. בחר בלחצן העלה אישור עבור תעודת הפיתוח שלך, תעודת הייצור שלך או שניהם. נדרש לפחות אחד.
  3. עבור כל תעודה, בחר את קובץ ה-.p12 וציין את הסיסמה, אם ישנה. ודא שמזהה החבילה עבור אישור זה תואם למזהה החבילה של האפליקציה שלך. בחר שמור .

שיטה סוויסינג

כדי להשתמש בתוסף FCM Flutter במכשירי אפל, אסור להשבית את שיטת ה-swissling. נדרשת סיבוב, ובלעדיו, תכונות מפתח של Firebase כגון טיפול באסימוני FCM אינן פועלות כראוי.

דְמוּי אָדָם

שירותי Google Play

לקוחות FCM דורשים התקנים עם אנדרואיד 4.4 ומעלה שמותקנים בהם גם שירותי Google Play, או אמולטור שמריץ אנדרואיד 4.4 עם ממשקי API של Google. שים לב שאינך מוגבל לפריסת אפליקציות Android שלך דרך חנות Google Play.

אפליקציות המסתמכות על ה-SDK של שירותי Play צריכות תמיד לבדוק את המכשיר עבור APK תואם לשירותי Google Play לפני גישה לתכונות שירותי Google Play. מומלץ לעשות זאת בשני מקומות: בשיטת onCreate() של הפעילות הראשית, ובשיטת onResume() שלה. הצ'ק-אין onCreate() מבטיח שלא ניתן להשתמש באפליקציה ללא בדיקה מוצלחת. הצ'ק ב- onResume() מבטיח שאם המשתמש חוזר לאפליקציה הפועלת באמצעים אחרים, כגון דרך כפתור החזרה, הבדיקה עדיין תתבצע.

אם למכשיר אין גרסה תואמת של שירותי Google Play, האפליקציה שלך יכולה להתקשר ל- GoogleApiAvailability.makeGooglePlayServicesAvailable() כדי לאפשר למשתמשים להוריד שירותי Google Play מחנות Play.

אינטרנט

הגדר אישורי אינטרנט עם FCM

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

צור זוג מפתחות חדש
  1. פתח את הכרטיסייה Cloud Messaging בחלונית ההגדרות של מסוף Firebase וגלול אל הקטע תצורת אינטרנט .

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

ייבא זוג מפתחות קיים

אם יש לך זוג מפתחות קיים שאתה כבר משתמש עם אפליקציית האינטרנט שלך, אתה יכול לייבא אותו ל-FCM כדי שתוכל להגיע למופעי אפליקציית האינטרנט הקיימים שלך דרך ממשקי API של FCM. כדי לייבא מפתחות, חייבת להיות לך גישה ברמת הבעלים לפרויקט Firebase. ייבא את המפתח הציבורי והפרטי הקיים שלך בצורה מקודדת בטוחה של base64 URL:

  1. פתח את הכרטיסייה Cloud Messaging בחלונית ההגדרות של מסוף Firebase וגלול אל הקטע תצורת אינטרנט .

  2. בכרטיסייה Web Push אישורים , מצא ובחר את טקסט הקישור, "יבא זוג מפתחות קיים".

  3. בתיבת הדו-שיח ייבוא ​​זוג מפתחות , ספק את המפתחות הציבוריים והפרטיים שלך בשדות המתאימים ולחץ על ייבוא ​​. המסוף מציג את מחרוזת המפתח הציבורי ואת התאריך שנוספו.

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

התקן את הפלאגין FCM

  1. התקן ואתחל את התוספים של Firebase עבור Flutter אם עדיין לא עשית זאת.

  2. מהשורש של פרויקט Flutter שלך, הפעל את הפקודה הבאה כדי להתקין את הפלאגין:

    flutter pub add firebase_messaging
    
  3. לאחר השלמתו, בנה מחדש את אפליקציית Flutter שלך:

    flutter run
    

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

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

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

// You may set the permission requests to "provisional" which allows the user to choose what type
// of notifications they would like to receive once the user receives a notification.
final notificationSettings = await FirebaseMessaging.instance.requestPermission(provisional: true);

// For apple platforms, ensure the APNS token is available before making any FCM plugin API calls
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
if (apnsToken != null) {
 // APNS token is available, make FCM plugin API requests...
}

בפלטפורמות אינטרנט, העבר את מפתח ה-VAPID הציבורי שלך ל- getToken() :

final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");

כדי לקבל הודעה בכל פעם שהאסימון מתעדכן, הירשם לזרם onTokenRefresh :

FirebaseMessaging.instance.onTokenRefresh
    .listen((fcmToken) {
      // TODO: If necessary send token to application server.

      // Note: This callback is fired at each app startup and whenever a new
      // token is generated.
    })
    .onError((err) {
      // Error getting token.
    });

מנע אתחול אוטומטי

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

iOS

ב-iOS, הוסף ערך מטא נתונים ל- Info.plist שלך:

FirebaseMessagingAutoInitEnabled = NO

דְמוּי אָדָם

ב-Android, השבת את איסוף Analytics ואת האתחול האוטומטי של FCM (עליך להשבית את שניהם) על ידי הוספת ערכי מטא נתונים אלה ל- AndroidManifest.xml שלך:

<meta-data
    android:name="firebase_messaging_auto_init_enabled"
    android:value="false" />
<meta-data
    android:name="firebase_analytics_collection_enabled"
    android:value="false" />

הפעל מחדש פתיחה אוטומטית של FCM בזמן ריצה

כדי להפעיל פתיחה אוטומטית עבור מופע אפליקציה ספציפי, קרא ל- setAutoInitEnabled() :

await FirebaseMessaging.instance.setAutoInitEnabled(true);

ערך זה נמשך בכל הפעלה מחדש של האפליקציה לאחר ההגדרה.

הצעדים הבאים

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

כדי להוסיף התנהגות אחרת ומתקדמת יותר לאפליקציה שלך, תזדקק ליישום שרת .

לאחר מכן, בלקוח האפליקציה שלך: