Как отправлять уведомления с помощью FCM после каждой новой записи в базе данных Firebase в реальном времени? - PullRequest
0 голосов
/ 09 июля 2019

У меня есть приложение для обмена групповыми сообщениями, которое использует базу данных Firebase-Real-time.Я пытаюсь изобрести способ, которым всякий раз, когда пользователь отправляет сообщение, все члены группы получают уведомление о сообщении.

Ниже приведена структура моей базы данных.

plan-129a0
    |
    -- plan
         |
         -- LVAMCUC8S0S6tuTtLjk
            |
            -- exp_duration: "same_day"
            |
            -- members
                |
                -- 0: member_id
                |
                -- 1: member_id
            |
            -- messages
                |
                -- LVAMDqIHDrTDeTUrfkM
                |
                -- msgTime: 
                |
                -- name:
                |
                -- text: "Hello World"
            |
            -- name: "Plan one"
            |
            -- plan_admin: 
            |
            -- timeCreated: "Wed"

    user
      |
      -- LT46t95CKQ9dFgXv-JF
            |
            -- name:
            |
            -- number:
            |
            -- uid:

Я пытаюсь отправитьуведомление каждый раз, когда в узле сообщений появляется новая запись для каждого пользователя, находящегося в узле участников.Мой вопрос заключается в том, могут ли облачные функции Firebase выполнить эту задачу?

Некоторые из постов, которые я прочитал о том, как реализовать это состояние, мне нужен токен для каждого устройства, чтобы отправить им уведомление.Что это за токен и как его получить в Android для каждого устройства, которое регистрируется в моем приложении?

1 Ответ

0 голосов
/ 09 июля 2019

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

У вас есть два варианта сделать это с FCM:

  1. Использовать тему для определения каждой группы

    Это означает, что приложение должно подписаться на тему для каждой группы, членом которой является пользователь.А затем, чтобы отправить сообщение группе, вы вызываете API FCM, чтобы отправить сообщение в тему этой группы .

    В этом варианте FCM управляет связями между группами и токенами длявы, и он обрабатывает расширение группы до списка токенов.

  2. Отслеживайте, какие экземпляры приложения относятся к каждой группе

    Это означает, что вам нужно получите идентификаторы экземпляров приложения / токены FCM для каждого пользователя и сохраните их в своей собственной базе данных, учитывая, что их может быть несколько, и срок их действия может истечь.Затем, когда вы хотите отправить сообщение группе, вы просматриваете все идентификаторы / токены для этой группы и вызываете API FCM для отправки сообщения в список токенов .

    В этом варианте вы сами управляете отношениями между группами и токенами.Это дает вам больше гибкости, но также означает, что вам придется больше работать с данными.

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