Может ли Firebase отправлять push-уведомления без backend-сервера?

«Может ли Firebase отправлять push-уведомления без backend-сервера?» — вопрос из категории Сети, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, Firebase Cloud Messaging (FCM) может отправлять уведомления без собственного сервера, используя Firebase Console для ручной рассылки. Однако для автоматических или персонализированных уведомлений требуется серверный код (например, Cloud Functions или ваш backend).

Минимальная настройка в iOS (AppDelegate):

import FirebaseMessaging
import UserNotifications

func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions...) -> Bool {
    FirebaseApp.configure()
    UNUserNotificationCenter.current().delegate = self
    Messaging.messaging().delegate = self
    // Запрос разрешений
    UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound]) { _, _ in }
    application.registerForRemoteNotifications()
    return true
}

Ограничения подхода без сервера:

  • Невозможно отправлять уведомления конкретным пользователям на основе логики приложения.
  • Нет автоматических триггеров (например, по событию в БД).
  • Оффлайн-доставка ограничена (~4 недели).
  • Токены устройства (FCM token) могут меняться, их нужно обновлять.