Я использую firebase для отправки уведомлений пользователям, когда они получают новые сообщения от других пользователей.на данный момент у меня есть только простой текст, который сообщает пользователям, что у них есть новое сообщение, но вместо этого я хотел бы получить фактическое сообщение из базы данных и отобразить его как тело уведомления.но я действительно не знаю, как указать на тело сообщения внутри базы данных.
это моя структура базы данных
![message database](https://i.stack.imgur.com/07pzO.png)
это моя пожарная база
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
// Listens for new messages added to messages/
exports.messageNotification = functions.database.ref('/MsgNotifications/{user_id}/{message_id}').onWrite( (change, context) => {
const user_id = context.params.user_id;
const message_id = context.params.message_id;
console.log('We Have A Message for :', user_id);
if (!change.after.val()){
return console.log("A Notification Has Been Deleted From The Database: ", message_id)
}
const fromUser = admin.database().ref(`/MsgNotifications/${user_id}/${message_id}`).once('value');
return fromUser.then(fromUserResult => {
const from_user_id = fromUserResult.val().from;
console.log("You have new message from : ", from_user_id)
const userQuery = admin.database().ref(`/Users/${from_user_id}/name`).once('value');
const deviceToken = admin.database().ref(`/Users/${user_id}/device_token`).once('value');
return Promise.all([userQuery, deviceToken]).then(result => {
const userName = result[0].val();
const token_id = result[1].val();
const payload = {
notification: {
title: "New Message",
body: `You have a new message from ${userName}`,
icon: "default",
click_action: "com.chat.qchat_TARGET_NOTIFICATION"
},
data: {
from_user_id: from_user_id
}
};
return admin.messaging().sendToDevice(token_id, payload ).then(Response =>{
console.log('this is the notification')
});
});
});
});