Javascript &引用;ReferenceError:未定义请求";在Firebase云函数中
Firebase云函数日志在触发云函数时显示“ReferenceError:未定义请求”错误。 以下是我的云函数日志输出:Javascript &引用;ReferenceError:未定义请求";在Firebase云函数中,javascript,node.js,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Node.js,Firebase,Firebase Realtime Database,Google Cloud Functions,Firebase云函数日志在触发云函数时显示“ReferenceError:未定义请求”错误。 以下是我的云函数日志输出: ReferenceError: request is not defined at Promise.all.then.result (/srv/index.js:21:24) at <anonymous> at process._tickDomainCallback (internal/process/next_tick.js:2
ReferenceError: request is not defined
at Promise.all.then.result (/srv/index.js:21:24)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:229:7)
我已经尝试过,但无法找到解决方法。您使用变量“request”定义了“receivername”,但实际上似乎没有定义“request”,而@jpthesolver2提到,
request
没有声明。您可能输入了一个错误:似乎应该是const receivername=result[1].val()['name']
而不是const receivername=request[1].val()['name']代码>。请注意,日志指示您在index.js
文件的哪一行获得错误:在Promise.all.then.result(/srv/index.js:21:24)
。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.requestNotification=functions.database.ref('/Users/{userId}/Book_requests/{requestId}')
.onCreate((snap, context) =>{
const object=snap.val();
const recevierId=context.params.userId;
const requestId=context.params.requestId;
const requesterId=object['requesterId'];
const bookId=object['bookId'];
const requesterRef=admin.database().ref('/Users/'+requesterId).once('value');
const bookRef=admin.database().ref('/Books/'+bookId).once('value');
const recieverRef=admin.database().ref('/Users/'+recevierId).once('value');
return Promise.all([requesterRef,recieverRef,bookRef]).then((result=>{
const requesterName=result[0].val()['name'];
const reciverToken=result[1].val()['deviceToken'];
const bookTitle=result[2].val()['title'];
const recieverName=request[1].val()['name'];
const requesterHistory='you have requested to '+recieverName+'for the book '+bookTitle;
const recieverHistory=requesterName+'requests for the books named '+bookTitle;
const historyRefRequester=admin.database().ref('/Users/'+requesterId+'/History/').push({
historyType:"request",
historyMsg:requesterHistory
});
const historyRefReciever=admin.database().ref('/Users/'+recevierId+'/History/').push({
historyType:"request",
historyMsg:recieverHistory
});
return Promise.all(historyRefRequester,historyRefReciever).then((result=>{
const payload={
notification:{
title:" Book Request ",
body:requesterName+" wants one of your book named "+bookTitle
}
}
return admin.messaging().sendToDevice(payload,reciverToken).catch((error=>{
console.log('error occured',error);
}));
}))
}))
});