FCM — τι είναι, αρχές του Firebase Cloud Messaging στην ανάπτυξη

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-03-19 Χρόνος ανάγνωσης: 8 λεπ

Το FCM (Firebase Cloud Messaging) είναι μια cross-platform υπηρεσία της Google για την παράδοση push ειδοποιήσεων και τη μεταφορά δεδομένων μεταξύ διακομιστή και εφαρμογών για κινητά. Υποστηρίζει Android, iOS και web πλατφόρμες μέσω ενιαίου API. Σύμφωνα με το Firebase Documentation, το FCM επεξεργάζεται πάνω από 1 δισεκατομμύριο μηνύματα καθημερινά παγκοσμίως.

Κύρια σημεία

  • FCM — cross-platform υπηρεσία της Google για αποστολή push ειδοποιήσεων και δεδομένων
  • Αρχιτεκτονική — ο πελάτης λαμβάνει token εγγραφής, ο διακομιστής στέλνει μηνύματα μέσω του Firebase Connection Server
  • Τύποι μηνυμάτων — notification (αυτόματη εμφάνιση) και data (πλήρης επεξεργασία στην εφαρμογή)
  • Παράδοση — το FCM χρησιμοποιεί μόνιμη σύνδεση ή ουρές προτεραιότητας για εγγυημένη παράδοση
  • Ενσωμάτωση — σύνδεση μέσω Firebase SDK, ρύθμιση google-services.json και διαμόρφωση διακομιστή

Τι είναι το FCM;

Το Firebase Cloud Messaging (FCM) είναι μια cloud υπηρεσία της Google που παρέχει αξιόπιστη παράδοση push ειδοποιήσεων και μηνυμάτων δεδομένων σε κινητές συσκευές. Παλαιότερα γνωστό ως Google Cloud Messaging (GCM), το FCM έχει γίνει το κύριο εργαλείο για cross-platform ειδοποιήσεις στο οικοσύστημα Firebase.

Το FCM επιλέγει αυτόματα το βέλτιστο κανάλι παράδοσης ανάλογα με την πλατφόρμα: στο Android χρησιμοποιεί τη δική του σύνδεση FCM, στο iOS — APNS (μέσω της πύλης FCM). Ο προγραμματιστής δεν χρειάζεται να υλοποιήσει δύο διαφορετικές ενσωματώσεις — το FCM αναλαμβάνει τη δρομολόγηση.

Η υπηρεσία παρέχει ένα ενιαίο REST API και Admin SDK για την αποστολή μηνυμάτων. Αυτό επιτρέπει την αποστολή ειδοποιήσεων από την πλευρά του διακομιστή χωρίς δέσμευση σε μια συγκεκριμένη πλατφόρμα του παραλήπτη.

Βασικές δυνατότητες του FCM

Το FCM υποστηρίζει πολλούς τρόπους παράδοσης: ένα μήνυμα σε συγκεκριμένη συσκευή, ομαδική αποστολή ανά θέμα (topic) και τμηματική αποστολή ανά συνθήκη (condition). Επίσης, διατίθενται προγραμματισμός αποστολής και A/B δοκιμές περιεχομένου ειδοποιήσεων.

Πώς λειτουργεί το Firebase Cloud Messaging;

Η αρχιτεκτονική του FCM βασίζεται σε τρία στοιχεία: την εφαρμογή πελάτη, τον Firebase Connection Server και τον διακομιστή εφαρμογής (app server). Ο πελάτης εγγράφεται στο FCM κατά την εκκίνηση και λαμβάνει ένα μοναδικό token εγγραφής — μια συμβολοσειρά που αναγνωρίζει τη συσκευή για αυτήν την εφαρμογή.

Ο διακομιστής εφαρμογής στέλνει ένα αίτημα στο FCM REST API, προσδιορίζοντας το token του παραλήπτη ή το θέμα. Ο Firebase Connection Server παραδίδει το μήνυμα χρησιμοποιώντας μόνιμη σύνδεση XMPP ή αίτημα HTTP. Εάν η συσκευή είναι εκτός σύνδεσης — το μήνυμα μπαίνει σε ουρά και παραδίδεται όταν αποκατασταθεί η σύνδεση.

Το FCM εγγυάται την παράδοση με ουρές προτεραιότητας και μηχανισμό επιβεβαίωσης λήψης. Στο Android, το μήνυμα αποθηκεύεται έως και 28 ημέρες στην ουρά, στο iOS — έως και 4 εβδομάδες (μέσω APNS). Μετά τη λήξη της προθεσμίας, το μήνυμα διαγράφεται χωρίς ειδοποίηση.

Κύκλος ζωής του token FCM

Το token εγγραφής μπορεί να αλλάξει σε αρκετές περιπτώσεις: κατά την επαναφορά δεδομένων εφαρμογής, κατά την ενημέρωση σε νέα έκδοση ή κατά την εκκαθάριση της προσωρινής μνήμης. Η εφαρμογή πρέπει να υλοποιήσει το FirebaseMessagingService.onNewToken για τον χειρισμό της ενημέρωσης token και τον συγχρονισμό με τον διακομιστή.

Τύποι μηνυμάτων FCM

Το FCM υποστηρίζει δύο τύπους ωφέλιμου φορτίου: notification και data. Κάθε τύπος καθορίζει πώς και πότε επεξεργάζεται το μήνυμα στη συσκευή του παραλήπτη.

ΠαράμετροςNotificationData
Αυτόματη εμφάνισηΝαι, αν η εφαρμογή είναι στο παρασκήνιοΌχι, μόνο στην εφαρμογή
ΕπεξεργασίαΣύστημα — στο παρασκήνιο, εφαρμογή — στο προσκήνιοΠάντα στην εφαρμογή (onMessageReceived)
Μέγιστο μέγεθος4 KB4 KB
Προσαρμοσμένα κλειδιάΠεριορισμένα σε προκαθορισμένα πεδίαΟποιαδήποτε ζεύγη κλειδιού-τιμής
Απαιτεί CollapseKeyΠροαιρετικάΠροαιρετικά για ομαδοποίηση

Στην πράξη, συνιστάται η χρήση μηνυμάτων data εάν η εφαρμογή χρειάζεται πλήρη επεξεργασία της ειδοποίησης στο onMessageReceived. Τα μηνύματα notification είναι κατάλληλα για απλά σενάρια όπου η εμφάνιση από το σύστημα είναι επαρκής.

FCM και APNS: σύγκριση προσεγγίσεων

Το FCM και το APNS είναι οι δύο κύριες υπηρεσίες παράδοσης push. Το FCM λειτουργεί ως cross-platform πύλη, το APNS — μόνο για το οικοσύστημα Apple. Οι βασικές τους διαφορές είναι στην αρχιτεκτονική, τις απαιτήσεις πιστοποιητικών και τους μηχανισμούς δρομολόγησης.

  • Cross-platform — Το FCM υποστηρίζει Android, iOS, Web, το APNS μόνο iOS, macOS, watchOS, tvOS
  • Αυθεντικοποίηση — Το FCM χρησιμοποιεί Server Key ή OAuth 2.0, το APNS — πιστοποιητικό ή Token-based (p8 key)
  • Προτεραιότητα μηνύματος — Το FCM έχει normal/high, το APNS — immediate/power-efficient consideration
  • Θέματα — Το FCM υποστηρίζει εγγραφή σε θέματα out of the box, το APNS απαιτεί λογική διακομιστή

Η επιλογή μεταξύ FCM και άμεσου APNS εξαρτάται από την αρχιτεκτονική του έργου. Για cross-platform εφαρμογές, το FCM είναι η βέλτιστη επιλογή. Για έργα μόνο iOS, η άμεση εργασία με APNS μέσω HTTP/2 API είναι αποδεκτή.

Πότε να επιλέξετε FCM αντί για άμεσο APNS

Το FCM δικαιολογείται όταν το έργο χρησιμοποιεί ταυτόχρονα Android και iOS, καθώς και όταν υπάρχει ανάγκη για Firebase analytics, A/B δοκιμές ειδοποιήσεων ή θέματα χωρίς λογική διακομιστή. Το άμεσο APNS προτιμάται για εφαρμογές μόνο iOS με ελάχιστες εξαρτήσεις και αυστηρές απαιτήσεις καθυστέρησης παράδοσης.

Ενσωμάτωση FCM σε Android

Για τη σύνδεση του FCM με εφαρμογή Android, πρέπει να προστεθεί το Firebase SDK και να ρυθμιστεί το google-services.json στη ρίζα του έργου. Μετά την εγγραφή του token, η εφαρμογή είναι έτοιμη να λαμβάνει μηνύματα μέσω FirebaseMessagingService.

kotlin
// build.gradle (Module)
dependencies {
    implementation("com.google.firebase:firebase-messaging:24.1.0")
}

// AndroidManifest.xml
<service android:name=".MyFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>

class MyFirebaseMessagingService :
    FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        sendTokenToServer(token)
    }

    override fun onMessageReceived(message: RemoteMessage) {
        message.notification?.let {
            showNotification(it.title, it.body)
        }
    }
}

Μετά τη ρύθμιση, η εφαρμογή λαμβάνει αυτόματα το token FCM κατά την πρώτη εκκίνηση. Το token πρέπει να σταλεί στον διακομιστή εφαρμογής για μελλοντική αποστολή ειδοποιήσεων σε αυτήν τη συσκευή.

Ρύθμιση καναλιού για ειδοποιήσεις FCM

Σε Android 8+, πριν από την αποστολή ειδοποίησης FCM με αυτόματη εμφάνιση, πρέπει να δημιουργηθεί ένα NotificationChannel. Τα μηνύματα notification FCM χρησιμοποιούν το κανάλι με προεπιλεγμένο ID, αλλά συνιστάται η δημιουργία δικού σας καναλιού μέσω FirebaseMessagingService κατά τη λήψη του πρώτου μηνύματος. Τα μηνύματα data δεν απαιτούν κανάλι — η εφαρμογή αποφασίζει μόνη της πώς και πότε θα εμφανίσει την ειδοποίηση.

Ενσωμάτωση FCM σε iOS

Στο iOS, το FCM λειτουργεί ως ενδιάμεσος μεταξύ του διακομιστή εφαρμογής και του APNS. Η Firebase λαμβάνει το μήνυμα από τον διακομιστή, το τυλίγει σε μορφή APNS και το στέλνει μέσω της πύλης Apple. Ο προγραμματιστής πρέπει να ρυθμίσει το κλειδί APNS ή το πιστοποιητικό στην κονσόλα Firebase.

swift
import FirebaseMessaging
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        FirebaseApp.configure()
        UNUserNotificationCenter.current().delegate = self

        Messaging.messaging().delegate = self
        return true
    }
}

extension AppDelegate: MessagingDelegate {
    func messaging(
        _ messaging: Messaging,
        didReceiveRegistrationToken fcmToken: String?
    ) {
        UserDefaults.standard.set(fcmToken, forKey: "fcm_token")
    }
}

Στο iOS, η εγγραφή στο APNS γίνεται ασύγχρονα. Το FCM SDK λαμβάνει αυτόματα το token APNS και το μεταδίδει στον διακομιστή Firebase. Το didReceiveRegistrationToken ενεργοποιείται κατά τη λήψη νέου token FCM, το οποίο συνδυάζει το token APNS με το αναγνωριστικό έργου.

Έλεγχος κατάστασης παράδοσης

Το FCM παρέχει κονσόλα Firebase για την παρακολούθηση της παράδοσης: αριθμός σταλμένων, ληφθέντων και εμφανισθέντων ειδοποιήσεων. Επίσης, διατίθεται callback κατάστασης μέσω Firebase Cloud Functions για την παρακολούθηση σφαλμάτων παράδοσης στην πλευρά του διακομιστή. Βασικές μετρήσεις: impressions (εμφανίσεις) και opens (ανοίγματα).

Βέλτιστες πρακτικές FCM

Κατά την εργασία με το FCM, είναι σημαντικό να επιλέγετε τον σωστό τύπο μηνύματος για κάθε σενάριο. Για απλές ειδοποιήσεις με αυτόματη εμφάνιση, χρησιμοποιήστε μηνύματα notification. Για περιπτώσεις όπου η εφαρμογή πρέπει να επεξεργαστεί δεδομένα πριν από την εμφάνιση — μηνύματα data. Ο μικτός τύπος (notification + data) συνιστάται μόνο εάν τα δεδομένα χρειάζονται για analytics, όχι για αλλαγή του περιεχομένου της ειδοποίησης.

Διαχειριστείτε τα token κεντρικά. Αποθηκεύστε τα τρέχοντα token στον διακομιστή σε πίνακα με σύνδεση με τον χρήστη και την πλατφόρμα. Εφαρμόστε έναν μηχανισμό εκκαθάρισης παλαιών token: σε σφάλμα NotRegistered ή InvalidRegistration, διαγράψτε το token από τη βάση δεδομένων. Τα token αλλάζουν σπάνια, αλλά ο καθαρισμός τους είναι υποχρεωτικό στοιχείο υποστήριξης FCM.

Χρησιμοποιήστε κλειδιά κατάρρευσης (collapseKey) για την ομαδοποίηση μηνυμάτων. Εάν στέλνετε πολλές ειδοποιήσεις του ίδιου τύπου (για παράδειγμα, «ενημέρωση ισοτιμίας νομίσματος»), ορίστε το ίδιο collapseKey. Το FCM θα παραδώσει μόνο το τελευταίο μήνυμα από την ομάδα, μειώνοντας το φορτίο της συσκευής και χωρίς να ενοχλεί τον χρήστη με καταιγισμό ειδοποιήσεων.

Παρακολουθείτε την παράδοση μέσω Firebase Console και Cloud Functions. Τα analytics FCM δείχνουν τον αριθμό των σταλμένων, ληφθέντων και εμφανισθέντων ειδοποιήσεων. Εάν το ποσοστό εμφάνισης είναι κάτω από 70% — ελέγξτε τις ρυθμίσεις καναλιού στο Android και τα δικαιώματα στο iOS. Η χαμηλή παράδοση συχνά σχετίζεται με απενεργοποιημένα κανάλια ή απαγόρευση ειδοποιήσεων. Πέμπτον: χρησιμοποιήστε A/B δοκιμές Firebase για βελτιστοποίηση του κειμένου ειδοποίησης και του χρόνου αποστολής — αυτό αυξάνει τη μετατροπή ανοίγματος κατά 15–25% σύμφωνα με δεδομένα Firebase.

Συχνές ερωτήσεις

Ποια είναι η διαφορά μεταξύ FCM και GCM;

Το FCM είναι μια εξελικτική ενημέρωση του GCM (Google Cloud Messaging). Το FCM προσφέρει απλοποιημένη ρύθμιση μέσω Firebase Console, ενσωματωμένα analytics, θέματα και υποστήριξη Web Push. Το GCM απενεργοποιήθηκε επίσημα τον Απρίλιο του 2019, όλα τα έργα πρέπει να μεταφερθούν στο FCM.

Πόσα μηνύματα μπορούν να σταλούν μέσω FCM δωρεάν;

Το Firebase Cloud Messaging είναι μια δωρεάν υπηρεσία χωρίς περιορισμούς στον αριθμό μηνυμάτων. Χρέωση γίνεται μόνο για τη χρήση άλλων υπηρεσιών Firebase, όπως Cloud Functions ή Firestore. Το FCM δεν απαιτεί συνδρομή Spark ή Blaze για βασική αποστολή ειδοποιήσεων.

Γιατί μπορεί να αλλάξει το token FCM;

Το token FCM αλλάζει σε: επαναφορά εφαρμογής από αντίγραφο ασφαλείας, εκκαθάριση δεδομένων εφαρμογής, επανεγκατάσταση, ενημέρωση σε νέα έκδοση με αλλαγή Sender ID. Πάντα να χειρίζεστε το onNewToken στο FirebaseMessagingService για αποστολή του νέου token στον διακομιστή.

Λειτουργεί το FCM στην Κίνα;

Το FCM της Google είναι μπλοκαρισμένο στο έδαφος της Κίνας. Για την παράδοση ειδοποιήσεων στην Κίνα χρησιμοποιούνται εναλλακτικές υπηρεσίες: Huawei Push Kit, MiPush (Xiaomi), Oppo Push, Vivo Push. Για cross-platform παράδοση εφαρμόζονται υπηρεσίες πολλαπλών παρόχων όπως το Getui.

Πώς να ελέγξω ότι το FCM έχει ρυθμιστεί σωστά;

Χρησιμοποιήστε την ενσωματωμένη κονσόλα Firebase: επιλέξτε «Cloud Messaging» — «Send Test Message». Εισαγάγετε το δοκιμαστικό token και στείλτε ένα μήνυμα notification. Θα πρέπει να εμφανιστεί μια ειδοποίηση στη συσκευή. Μπορείτε επίσης να παρακολουθείτε τα αρχεία καταγραφής FirebaseMessagingService.onMessageReceived.

Σύνοψη

  • FCM — cross-platform cloud υπηρεσία της Google για παράδοση push ειδοποιήσεων και δεδομένων
  • Token — μοναδικό αναγνωριστικό συσκευής που χρησιμοποιείται για στοχευμένη αποστολή μηνυμάτων
  • Notification — τύπος μηνύματος με αυτόματη εμφάνιση από το σύστημα σε λειτουργία παρασκηνίου
  • Data — τύπος μηνύματος με πλήρες ωφέλιμο φορτίο που επεξεργάζεται μόνο στην εφαρμογή
  • Θέματα — μηχανισμός ομαδικής αποστολής με εγγραφή σε θέματα χωρίς αποθήκευση token στον διακομιστή
  • Πύλη APNS — για iOS, το FCM λειτουργεί ως ενδιάμεσος, μεταδίδοντας μηνύματα μέσω APNS
  • Δωρεάν — το FCM δεν χρεώνει για τον αριθμό των σταλμένων μηνυμάτων

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης