Push-уведомления позволяют отправлять своевременную и актуальную информацию на телефон пользователя. Они доставляются пользователям независимо от того, открыто у них ваше приложение или нет. На этой странице вы можете включить функцию push-уведомлений в своем приложении. После включения вы можете отправить push-уведомление мгновенно или запланировать его доставку на устройство пользователя в определенное время.
FlutterFlow использует Firebase Cloud Messaging (продукт Firebase) для отправки push-уведомлений.

Пререквизиты
Прежде чем приступить к этому разделу, убедитесь, что вы:
- Выполнили все шаги в разделе «Настройка Firebase» для своего проекта.
- Добавьте план Blaze в свой проект Firebase.
Эти шаги являются обязательным условием, если вы хотите отправлять push-уведомления на устройства iOS:
- Создали учетную запись Apple.
- Приобрели членство разработчика Apple. Подробнее о программе Apple Developer и о том, как зарегистрироваться, читайте по этой ссылке.
- Создали сертификат распространения iOS, идентификатор приложения и профиль обеспечения в учетной записи разработчика Apple. Здесь приведены инструкции по созданию, если вы еще не сделали этого.
Включение push-уведомления
Обратите внимание, что push-уведомления не будут работать в этих сценариях:
- Push-уведомления не будут работать на симуляторе iOS. Для тестирования необходимо использовать реальное устройство.
- Push-уведомления не будут работать, если пользователь не вошел в ваше приложение. Вы можете добавить анонимный вход в Firebase в ваше приложение, чтобы отправлять push-уведомления не вошедшим пользователям.
- Push-уведомления не будут работать, если приложение открыто на вашем устройстве.
Чтобы отправлять push-уведомления своим пользователям, необходимо включить настройки Push-уведомлений в FlutterFlow.
Ниже описаны шаги по включению Push-уведомлений во FlutterFlow:
- Нажмите на Настройки и Интеграции в левом боковом меню.
- В разделе Настройки приложения выберите Push-уведомления.
- Найдите раздел Включить Push-уведомления и включите его. (Нажмите на кнопку Toggle справа).
- Теперь нажмите на кнопку Deploy. Это создаст и развернет облачные функции в вашем проекте Firebase, необходимые для работы push-уведомлений.

После успешного развертывания облачных функций она должна выглядеть следующим образом:

Настройка приложения для iOS
Чтобы получать push-уведомления в приложении для iOS, необходимо выполнить следующие дополнительные действия.
- Создание ключа
- Добавьте ключ APNs в проект Firebase
- Добавление идентификатора
Создание ключа
Apple требует от разработчиков создавать ключ для push-уведомлений в Apple Developer Console для проверки отправителя push-уведомления.
Чтобы создать ключ:
- Откройте свою учетную запись разработчика Apple.
- Нажмите на карточку Сертификаты, идентификаторы и профили.
- Нажмите на ключи в левом боковом меню.
- Нажмите на кнопку (+) справа от надписи Ключи.
- Введите Имя ключа.
- Выберите службу Apple Push Notifications (APNs) из списка ниже.
- Нажмите кнопку Продолжить, а затем Зарегистрировать.
- Нажмите Загрузить и сохраните файл. Он понадобится для добавления в ваш проект Firebase.

Добавьте ключ APNs в проект Firebase
Чтобы добавить ключ APNs в проект Firebase:
- На приборной панели Firebase из вашего проекта перейдите в крайнее левое меню. Выберите Настройки проекта( ) —> Настройки проекта.
- Выберите вкладку Cloud Messaging.
- Прокрутите вниз и найдите ваше приложение iOS в разделе Конфигурация приложений Apple.
- В разделе Ключ аутентификации APNs нажмите на Загрузить. Появится всплывающее окно для загрузки и ввода данных ключа.
- Нажмите на кнопку Browse, чтобы найти и загрузить файл ключа аутентификации APNs.
- Введите идентификатор ключа. Идентификатор ключа можно найти в Центре разработчиков Apple в разделе
- Сертификаты, идентификаторы и профили -> Ключи -> Нажмите на Ключ.
- Введите идентификатор команды. Идентификатор команды можно найти в Apple Member Center на вкладке Членство.

Добавление идентификатора
Вы должны добавить идентификатор, чтобы иметь возможность отправлять push-уведомления на устройства iOS после размещения приложения в магазине приложений.
Чтобы добавить идентификатор:
- Откройте свою учетную запись разработчика Apple.
- Нажмите на карточку Certificates, Identifiers & Profiles.
- Нажмите на Идентификаторы в левом боковом меню.
- Нажмите на кнопку (+) в правой части ярлыка Идентификаторы.
- Выберите Идентификаторы приложений и нажмите кнопку Продолжить.
- Выберите Тип приложения и нажмите кнопку Продолжить.
- Введите Описание как ImageNotification.
- Введите Bundle ID как имя вашего пакета и добавьте .ImageNotification в конце.
- Нажмите Продолжить, а затем нажмите Регистрация.

После настройки iOS отправьте push-уведомления в приложение iOS.
Вот как это работает в приложении iOS:

Отправка push-уведомлений
Push-уведомления не будут работать в симуляторе iOS. Вместо этого вам нужно будет протестировать это на реальном устройстве.
Push-уведомления не будут отображаться, если у вас открыто приложение.
Используйте эти шаги для создания и отправки push-уведомлений из FlutterFlow:
- Нажмите на Настройки и Интеграции в левом боковом меню.
- Перейдите на вкладку Push-уведомления.
- Найдите раздел Manually Trigger Notifications и нажмите на него, чтобы развернуть раздел.
- В поле Notification Title введите текст, который вы хотите установить в качестве заголовка для уведомления.
- В Тексте уведомления введите содержание вашего уведомления.
- Нажмите на Upload Notification Image (Загрузить изображение уведомления), чтобы установить изображение, которое будет отображаться в уведомлении. (Необязательно)
- Найдите выпадающий список Целевая аудитория. Оставьте опцию Все выбранной, если вы хотите отправлять уведомления как пользователям Android, так и iOS. Вы можете выбрать Android или iOS, если хотите нацелиться на пользователей конкретных ОС.
- Чтобы отправить push-уведомления определенному или нескольким пользователям, введите ссылку на документ пользователя (из коллекции пользователей в Firestore) в поле User References.
- Найдите выпадающий список Начальная страница и выберите страницу, которую вы хотите открыть, когда пользователь нажмет на уведомление.
- Нажмите на кнопку Отправить уведомление.
- Чтобы подтвердить, что вы хотите отправить это уведомление, появится всплывающее окно. Вам нужно ввести текст ‘Send Notification’ и снова нажать на Send Notification.

Push-уведомления с данными
Вы можете захотеть передать некоторые данные с push-уведомлениями и показать более подробную информацию об этих данных на странице (когда страница открывается через push-уведомление).
Чтобы отправить push-уведомление с данными:
- У вас должна быть страница, которая принимает параметр типа record из коллекции firestore.
- Создайте уведомление, используя инструкции здесь.
- Во время создания уведомления прокрутите страницу вниз, чтобы найти раздел «Начальная страница» и выберите страницу, которая принимает параметр.
- Найдите раздел Parameter Data, скопируйте ссылку на документ из Firestore и вставьте ее в поле ввода ниже.
- Нажмите на кнопку Отправить уведомление.

Запуск Push-уведомления
Вы можете захотеть отправить push-уведомление, когда что-то происходит в вашем приложении. Например, отправка push-уведомления при отправке сообщения, push-уведомление при записи на новую встречу, push-уведомление при изменении цены и т.д. Вы можете отправить push-уведомление при наступлении такого события, добавив действие Trigger Push Notification.
Для наглядности рассмотрим пример отправки push-уведомления создателю сообщения, когда кто-то комментирует сообщение.

Ниже приведены шаги:
- Получение ссылки на документ пользователя
- Создание пользовательского интерфейса
- Добавление триггерного действия push-уведомления
Получение ссылки на документ пользователя
Ссылка на документ пользователя указывает на документ пользователя внутри коллекции пользователей. Она помогает получить данные пользователя для отправки push-уведомления на устройство (на котором пользователь вошел в систему).
В идеале, вы должны получить ссылку на документ пользователя из документа Firestore. Документ Firestore может содержать поле типа created_by, которое хранит ссылку на документ пользователя. Но для упрощения давайте просто сохраним ссылку в локальной переменной состояния, которая выглядит следующим образом:

В случае, если вам нужно отправить push-уведомления нескольким пользователям. Например, отправка уведомлений всем пользователям, которым понравилось сообщение, когда кто-то комментирует сообщение. Вы можете получить список/массив ссылок на документы пользователей из документа Firestore или из любой локальной переменной состояния вашего приложения. Список ссылок на документы в локальной переменной состояния выглядит следующим образом:

Узнайте больше о работе с переменными Local state.
Создание пользовательского интерфейса
В этом шаге мы создадим пользовательский интерфейс, позволяющий ввести комментарий, и кнопку для отправки комментария.
Вот шаги:
- Создайте/выберите страницу.
- Выберите виджет Column.
- Добавьте виджет TextField для ввода комментария и дайте ему имя.
- Добавьте виджет Button для отправки комментария.

Добавление действия для запуска push-уведомления
Добавьте действие для запуска push-уведомления, посетив следующую страницу.