У меня есть приложение для Android, и я хочу, чтобы люди (прошедшие проверку) отправляли push-уведомления друг другу из окна сообщения.Я использую node.js с облачными функциями Firebase, и я получил это ошибка в журналах:
TypeError: Невозможно прочитать свойство 'userId' из неопределенного в exports.sendNotification.functions.database.ref.onWrite.event (/user_code/index.js:10:33) ...
Сообщение успешно записывается в базу данных в реальном времени, но уведомление не доставляется вполучатель (пользователь).
Я прочитал так много документов и одних и тех же / похожих проблем, поэтому я знаю, что существует так много тем, связанных с этим, но я не смог решить эту проблему.Я использую index.js в качестве исходного кода, но изменил некоторые части, такие как раздел onWrite, в соответствии с документами, которые я прочитал.
Ошибка указывает эту строку в следующем коде: const receiverId = context.params.userId;
Что-то в параметрах не работает.Вот небольшая часть кода (с моими изменениями):
let functions = require('firebase-functions');
let admin = require('firebase-admin');
admin.initializeApp();
exports.sendNotification = functions.database.ref('/messages/{userId}/{messageId}').onWrite((change,context) => {
//get the userId of the person receiving the notification because we need to get their token
const receiverId = context.params.userId;
console.log("receiverId: ", receiverId);
//get the user id of the person who sent the message
const senderId = change.child('user_id').val();
console.log("senderId: ", senderId);
//get the message
const message = change.child('message').val();
console.log("message: ", message);
//get the message id. We'll be sending this in the payload
const messageId = context.params.messageId;
console.log("messageId: ", messageId);
...