我正在关注tutorial 我正在为项目添加一些Firebase云功能(步骤5)。我已成功将我的云功能部署到firebase,但在Firebase数据库控制台中手动添加新产品时没有任何反应。我发现Firebase云功能已被触发,但它出现了错误:" TypeError:无法读取属性&product;'未定义的"
我做错了什么?
AtomicInteger count = new AtomicInteger(0);
newList = someList.stream
.filter(a -> a.get().equals("red"))
.map(a -> new X(count.getAndIncrement()))
.collect(Collectors.toList());
答案 0 :(得分:2)
该教程必须过时。函数SDK在发布1.0版时发生了一些变化。您可以阅读有关这些更改here。
数据库触发器现在传递两个参数而不是一个。新的context参数包含引用路径中的通配符值:
exports.sendMessage = functions.firestore
.document('products/{productId}')
.onCreate((snapshot, context) => {
const docId = context.params.productId;
如果您想继续使用该教程,您必须手动将所有旧内容转换为新内容。
答案 1 :(得分:0)
行。所以感谢Dough Stevensson的回答,通知我语法已经过时了,我现在有一个解决方案:
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}!`})
});