Я хочу получить сообщение и отправителя сообщения (из базы данных firebase) и поместить его в уведомление в node.js функция firebase Плз помогите мне - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу получить Сообщение и отправителя сообщения (из базы данных firebase) и поместить его в уведомление в node.js Функция firebase Пожалуйста, дайте мне решение

Я всегда получаю [объект-обещание]: [объект-обещание] помогите мне.

Вот код node.js для уведомлений:

'use strict'


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

exports.sendMessageNotification = functions.database.ref('/MessageNotifications/{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}/deviceToken`).once('value');

    const from = admin.database().ref(`/Users/${receiver_user_id}/name`).once('value');
    const message = admin.database().ref(`/MessageNotifications/{receiver_user_id}/{notification_id}/message`).once('value');

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

        const payload = 
        {
            notification:
            {
                title: `New Message`,
                body: `${from}: ${message}`,
                icon: "default"
            }
        };

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

1 Ответ

0 голосов
/ 02 мая 2020

Я решил это:

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

    const from = admin.database().ref(`/MessageNotifications/${receiver_user_id}/${notification_id}/from`).once('value');
    const message = admin.database().ref(`/MessageNotifications/${receiver_user_id}/${notification_id}/message`).once('value');

    return from.then(result1 =>
    {
        const from = result1.val();

        return message.then(result2 =>
        {
            const message = result2.val();

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

                const payload = 
                {
                    notification:
                    {
                        title: `${from}`,
                        body: `${message}`,
                        icon: "default"
                    }
                };

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

Я возвратил свои значения со значением результата и стал строкой.

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