Я создал функцию, которая отправляет уведомления пользователю, если он получает новое сообщение.
Проблема заключается в том, что я пытаюсь получить ReceiverId из моей базы данных реального времени. , используя этот код:
const receiverRefId = database.ref("/chats/{id}/messages/{id}/receiver/{receiverId}")
, а затем .once()
и так далее ... журнал консоли выводит эту ошибку:
ReferenceError: database is not defined
at exports.sendNotification.functions.database.ref.onWrite (/srv/index.js:23:27)
at cloudFunction (/srv/node_modules/firebase-functions/lib/cloud-functions.js:131:23)
at /worker/worker.js:825:24
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:229:7)
Это мой код:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotification = functions.database.ref("/chats/{id}/messages")
.onWrite((change,context) => {
var content = change.after.val();
var payload = {
data:{
title: "Stranger has sent you a message",
text: content
}
};
// This is the receiver Id reference
// But the console log keeps telling me that "database" is not defined
const refSenderId = database.ref("/chats/{id}/messages/{id}/receiver/{receiverId}");
return refSenderId.once('value')
.then(dataSnapshot => {
const receiverId = dataSnapshot.val();
return admin.messaging().sendToDevice(receiverId, payload)
})
.then(function(response){
console.log("Successfully sent message: ", response);
return null;
})
.catch(function(error){
console.log("Error sending message: ", error);
return null;
})
});