Cloud Firestore Уведомления не получаются, когда приложение работает на Android - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть облачная функция Firestore, которая отправляет уведомления пользователям.

[ANDROID]

Это прекрасно работает, но я получаю уведомления только тогда, когда приложение находится в фоновом режиме (пауза или убит).

Вот упрощенная версия моей функции:

    'use strict'


const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);


exports.sendNotification = functions.database.ref('/Notifications/{receiver_user_id}/{notification_id}')
.onWrite((data, context) =>
{
    const receiver_user_id = context.params.receiver_user_id;
    const notification_id = context.params.notification_id;


console.log('We have a notification to send to :' , receiver_user_id);


if (!data.after.val()) 
{
    console.log('A notification has been deleted :' , notification_id);
    return null;
}

const DeviceToken = admin.database().ref(`/Users/${receiver_user_id}/device_token`).once('value');

return DeviceToken.then(result => 
{
    const token_id = result.val();

    const payload = 
    {
        notification:
        {
            title: "New Chat Request",
            body: `You have a new chat Request`,
            icon: "default"
        }
    };

    return admin.messaging().sendToDevice(token_id, payload)
    .then(response => 
        {
            console.log('This was a notification feature.');
        });
});
});

У меня нет конкретного кода Java, потому что мне нужны только уведомления, которые будут отображаться на данный момент.У кого-нибудь есть идея решить эту проблему простым способом?

1 Ответ

0 голосов
/ 21 апреля 2019

FCM Уведомления обрабатываются системой, когда приложение работает в фоновом режиме, и отображаются в системном трее на Android.Если вы хотите обрабатывать уведомления, когда ваше приложение активно, вам придется написать код для этого путем переопределения onMessageReceived.

Также см .:

...