Javascript TypeError:无法读取属性';儿童';未定义的
我一直在研究这个问题,但似乎找不到答案 我有一个带车手和司机的应用程序。当骑手请求骑乘时,它会将“历史”子项添加到db中。我也有一些功能,但当这个应用程序被执行时,日志会在添加“history”子项之前导致错误 index.js:Javascript TypeError:无法读取属性';儿童';未定义的,javascript,android,google-cloud-functions,Javascript,Android,Google Cloud Functions,我一直在研究这个问题,但似乎找不到答案 我有一个带车手和司机的应用程序。当骑手请求骑乘时,它会将“历史”子项添加到db中。我也有一些功能,但当这个应用程序被执行时,日志会在添加“history”子项之前导致错误 index.js: exports.newRequest=functions.database.ref('/history/{pushId}').onCreate(事件=>{ var requestSnapshot=event.data; var distance=requestSna
exports.newRequest=functions.database.ref('/history/{pushId}').onCreate(事件=>{
var requestSnapshot=event.data;
var distance=requestSnapshot.child('distance').val();
var价格=距离*0.5;
var pushId=event.params.pushId;
返回requestSnapshot.ref.parent.child(pushId).child('price').set(price);
});代码>您正在对Firebase SDK的新版本的云函数使用旧API。您需要更新到新的API。特别是,您需要注意firebase函数1.0版中的更改
特别是。您正在对数据库触发器的第一个参数使用老式的“event”参数:
exports.newRequest =
functions.database.ref('/history/{pushId}').onCreate(event => {
// ...
})
在1.0中,更改为接受一个和一个对象:
有关更多详细信息,请参阅文档。我已按照建议更新了API,并已更改为exports.newRequest=functions.database.ref('/history/{pushId}')。onCreate((快照,上下文)=>{…对于代码的其余部分…我已将“event”更改为“snap”但是,代码中的上下文在哪里发生了更改?您没有在快照和上下文参数周围加括号。我按照您的建议做了(快照,上下文)参见编辑#2它似乎“有些”起作用,现在让它做我需要它做的事情(将在另一个问题中发布)非常感谢
exports.newRequest =
functions.database.ref('/history/{pushId}').onCreate((snapshot, context) => {
// ...
})