Я занимаюсь разработкой приложений для Android и использую функции Firebase для отправки уведомлений через облачные сообщения Firebase.У меня мало знаний о функциях Firebase.Я пробовал несколько учебных пособий.
Я получаю сообщение об ошибке в журналах функций Firebase, как показано ниже:
ссылка на изображение ... изображение ошибки
Ошибка типа:Невозможно прочитать свойство "from" из неопределенного в admin.firestore.collection.doc.collection.doc.get.then.queryResult (/user_code/index.js:14:42) в process._tickDomainCallback (internal / process / next_tick.js).: 135: 7)
Если вам известны решения, отредактируйте мой код и вставьте в качестве ответа.Заранее спасибо.
Мой индекс, как показано ниже
'use-strict'
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.sendNotification = functions.firestore.document("Users/{user_id}/Notifications/{notification_id}").onWrite((change,context)=> {
const user_id = context.params.user_id;
const notification_id = context.params.notification_id;
console.log("USER ID : "+user_id+" NOTIFICATION ID "+notification_id);
return admin.firestore().collection("Users").doc(user_id).collection("Notifications").doc(notification_id).get().then(queryResult =>{
const from_user_id = queryResult.data().from;
const type = queryResult.data().type;
console.log("FROM_USER ID : "+from_user_id+" TYPE "+type);
const from_data = admin.firestore().collection("Users").doc(from_user_id).get();
const to_data = admin.firestore().collection("Users").doc(user_id).get();
return Promise.all([from_data, to_data]).then(result => {
const from_name = result[0].data().name;
const to_name = result[1].data().name;
const token_id = result[1].data().token_id;
const payload = {
notification: {
tag : from_user_id+"Follow",
title : "Request From : "+from_name,
icon : "follow_icon_for_notification",
color : "white",
sound : "TYPE_NOTIFICATION",
body : "Click here to accept Follow Request.",
click_action:"jony.Activities.ONFOLLOWREQUESTRECEIVED"
},
data : {
message : "Click here to accept Follow Request.",
user_id : from_user_id
}
};
return admin.messaging().sendToDevice(token_id, payload).then(result => {
var db = admin.firestore();
const FieldValue = require('firebase-admin').firestore.FieldValue;
var notificationRef = db.collection("Users").doc(user_id).collection("Notifications").doc(notification_id).delete();
return console.log("Follow notification sent");
});
});
});
});