【发布时间】:2018-06-03 05:04:34
【问题描述】:
'use strict'
const functions = require('firebase-functions');
const admin=require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotification=functions.database.ref('/notifications/{user_id}/{notification_id }').onWrite((change,context) =>{
const user_id=context.params.user_id;
const notification_id=context.params.notification_id;
console.log('The user ID is :',user_id);
if(!change.after.val()){
return console.log('A notification has been deleted from database:',notification_id);
}
const fromUser=admin.database().ref(`/notifications/${user_id}/${notification_id}`).once('value');
return fromUser.then(fromUserResult=>{
const from_user_id=fromUserResult.val().from;
console.log('You have new notification from: : ', from_user_id);
const userQuery=admin.database().ref(`users/${from_user_id}/name`).once('value');
return userQuery.then(userResult=>{
const userName=userResult.val();
const deviceToken=admin.database().ref(`/users/${user_id}/device_token`).once('value');
return deviceToken.then(result =>{
const token_id=result.val();
const payload={
notification:{
title:"Friend Request",
body:`${userName} has sent you request`,
icon:"default"
}
};
return admin.messaging().sendToDevice(token_id, payload);
});
});
});
});
TypeError:无法读取 null 的属性“来自” 在 fromUser.then.fromUserResult (/user_code/index.js:22:47) 在 process._tickDomainCallback (internal/process/next_tick.js:135:7)
【问题讨论】:
-
嗨 Shrey,欢迎来到 Stack Overflow!请将此重写为a Minimal, Complete, and Verifiable example,而不仅仅是代码转储。此外,请用英语解释您迄今为止为解决问题所做的尝试,以及您遇到的问题。谢谢,祝你好运!
标签: firebase firebase-cloud-messaging google-cloud-firestore