Мне показался интересным комментарий Фрэнка о «отсортированном ключе, составленном userID».Я бы, вероятно, использовал это в качестве ключа чата в базе данных (в реальном времени / firestore), однако, для уведомлений, я думаю, я бы по-прежнему использовал тему для каждого пользователя - таким образом я мог бы избежать уведомления пользователя, который разместил сообщение,Если это не проблема, просто выберите одну тему для каждого чата.
Также упомянув Фрэнка, я бы, вероятно, использовал дополнительные ключи во всех названиях тем, чтобы их было трудно угадать.(но добавьте это позже, чтобы не отвлекаться на неосновные вещи)
В этом ответе у вас есть пример того, как публиковать уведомления с помощью триггера onCreate в теме (из бэкэнда функций).
В коде флаттера вы можете использовать subscribeToTopic
из плагина firebase_messaging
, чтобы начать слушать тему.
Примечание: если ваше приложение будет поддерживать выход пользователя из системы [вероятно, это будет :)], вам также придется удалить токен на устройстве , чтобы избежать получения уведомлений от последнего зарегистрированного пользователя.пользователь.