Самый простой способ добиться этого - использовать Облачные функции для Firebase . Это поможет вам уведомлять пользователей, когда происходит что-то интересное, в вашем случае, когда пользователи будут добавлять контент (данные) в базу данных. Чтобы это работало, вам необходимо реализовать Firebase Authentication . Это поможет вам отправлять уведомления конкретному пользователю или группе пользователей, когда происходит что-то новое.
Итак, пожалуйста, следуйте инструкциям ниже.
Во-первых, реализовать Firebase Authentication
. Как только это будет реализовано, создайте коллекцию пользователей, в которой каждый пользователь будет документом в коллекции пользователей. Структура вашей базы данных должна выглядеть следующим образом:
Firebase-root
|
--- users (collection)
|
--- uid1 (document)
| |
| --- //user properties
|
--- uid2 (document)
|
--- //user properties
Помимо сведений о пользователе, вам также необходимо добавить к каждому пользователю tokenId
. Вы можете получить это очень просто, используя следующую строку кода:
String tokenId = FirebaseInstanceId.getInstance().getToken();
Пользовательский документ должен выглядеть так:
uid1 (document)
|
--- userName: "John"
|
--- userEmail: john@email.com
|
--- tokenId: "e_wLukMfq..." //very long token
|
--- //other specific user details
Во-вторых, создайте новую коллекцию в пользовательском документе с именем notifications
, в которую необходимо добавить все уведомления, которые необходимо отправить администратору. Необходимые свойства: notification message
и sender
. Пользовательский документ должен выглядеть примерно так:
uid1 (document)
|
--- userName: "John"
|
--- userEmail: john@email.com
|
--- tokenId: "e_wLukMfq..." //very long token
|
--- notifications (collection)
| |
| --- notificationId1
| |
| --- notificationMessage: "My Notification"
| |
| --- fromUser: "My Notification"
|
--- //other details
Пожалуйста, смотрите вложенную коллекцию notifications
, которая размещена под документом пользователя.
Теперь вам нужно использовать Node.js , чтобы написать функцию в Cloud Functions
, которая будет прослушивать каждое новое уведомление, которое появляется в этой ссылке:
"users/{uid}/notifications/{notificationId}"
Здесь - это простой пример того, как вы можете написать функцию Node.js.
После появления нового уведомления вы можете использовать функцию sendToDevice
и tokenId
для отправки уведомления конкретному пользователю. Уведомление будет обработано системой Android и будет отображаться пользователю. Обратите внимание, что это будет работать только тогда, когда приложение находится в background
. Вы также можете получать уведомления, когда приложение находится в foreground
, путем реализации FirebaseMessagingService
.
Я также объяснял в одном из моих учебных пособий шаг за шагом, как вы можете отправлять уведомления по мере необходимости.