Javascript 如何解决此Firebase云函数错误:无法读取属性
我在下面的一个例子中添加了一些Firebase云函数到我的项目中(步骤5)。我已经成功地将我的云功能部署到firebase,但在firebase数据库控制台中手动添加新产品时,什么都没有发生。我发现Firebase cloud函数被触发,但它得到了一个错误:“TypeError:无法读取未定义的属性“productId”” 我做错了什么Javascript 如何解决此Firebase云函数错误:无法读取属性,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我在下面的一个例子中添加了一些Firebase云函数到我的项目中(步骤5)。我已经成功地将我的云功能部署到firebase,但在firebase数据库控制台中手动添加新产品时,什么都没有发生。我发现Firebase cloud函数被触发,但它得到了一个错误:“TypeError:无法读取未定义的属性“productId”” 我做错了什么 const functions = require('firebase-functions'); const admin = require("fir
const functions = require('firebase-functions');
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
exports.sendMessage = functions.firestore
.document('products/{productId}')
.onCreate(event => {
const docId = event.params.productId; // <-- error here
const name = event.data.data().name;
const productRef = admin.firestore().collection('products').doc(docId)
return productRef.update({ message: `Nice ${name}! - Love Cloud Functions`})
});
const functions=require('firebase-functions');
const admin=require(“firebase管理员”);
admin.initializeApp(functions.config().firebase);
exports.sendMessage=functions.firestore
.document('products/{productId}'))
.onCreate(事件=>{
const docId=event.params.productId;//该教程必须已过时。当Functions SDK发布1.0版时,其中的某些内容已发生更改。您可以阅读这些更改
数据库触发器现在传递两个参数,而不是一个。新的上下文参数包含引用路径中通配符的值:
exports.sendMessage = functions.firestore
.document('products/{productId}')
.onCreate((snapshot, context) => {
const docId = context.params.productId;
如果您想继续学习该教程,您必须手动将其所有旧内容转换为新内容。该教程必须已过时。当Functions SDK发布1.0版时,有些内容已发生更改。您可以阅读这些更改
数据库触发器现在传递两个参数,而不是一个。新的上下文参数包含引用路径中通配符的值:
exports.sendMessage = functions.firestore
.document('products/{productId}')
.onCreate((snapshot, context) => {
const docId = context.params.productId;
如果您想继续学习该教程,您必须手动将其所有旧内容转换为新内容。好的。多亏史蒂文森的回答告诉我语法是旧的,我现在有了一个解决方案:
const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);
var db = admin.firestore();
exports.sendMessage = functions.firestore
.document('products/{productId}')
.onCreate((snapshot, context) => {
const docId = context.params.productId;
const productRef = db.collection('products').doc(docId)
return productRef.update({ message: `Nice ${name}!`})
});
好的。多亏史蒂文森的回答告诉我语法很旧,我现在有了一个解决方案:
const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);
var db = admin.firestore();
exports.sendMessage = functions.firestore
.document('products/{productId}')
.onCreate((snapshot, context) => {
const docId = context.params.productId;
const productRef = db.collection('products').doc(docId)
return productRef.update({ message: `Nice ${name}!`})
});
击败我:)+1击败我:)+1你忘了在这里定义名称。感谢你寻找正确的方法来完成这项艰巨的任务!你忘了在这里定义名称。感谢你寻找正确的方法来完成这项艰巨的任务!