Как получить уведомления, когда есть изменения в Firebase Firestore Android? - PullRequest
0 голосов
/ 06 июля 2018

Существует два типа приложений, одно из которых будет использоваться пользователями, а другое - мной, т.е. владельцем. Поэтому всякий раз, когда какие-либо пользователи добавляют контент (данные) в базу данных Cloud Firestore, я хочу получать уведомления. Короче говоря, как отправлять уведомления при изменении базы данных Cloud Firestore?

1 Ответ

0 голосов
/ 06 июля 2018

Самый простой способ добиться этого - использовать Облачные функции для 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.

Я также объяснял в одном из моих учебных пособий шаг за шагом, как вы можете отправлять уведомления по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...