отправка уведомлений с помощью firebase - PullRequest
0 голосов
/ 28 февраля 2019

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

это моя структура базы данных

message database

это моя пожарная база

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')
			});


		});
			
	});

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