gpt4 book ai didi

node.js - 更新 CloudFunctions 上的子集合

转载 作者:行者123 更新时间:2023-12-02 03:07:19 26 4
gpt4 key购买 nike

我需要一些帮助。

我的项目有 2 个集合,一个称为“产品”,另一个称为“用户”。

我将所选产品信息复制到用户的子集合中作为收藏夹,在本例中:

用户(集合)> 用户(文档)> 收藏夹(集合)> 产品(文档)

我的想法是创建一个云功能,它将监视“产品集合”产品(集合)>产品(文档)中任何产品的任何更新,然后将这些更改反射(reflect)在用户>收藏夹子集合上在这里更新产品的值:

用户(集合)> 用户(文档)> 收藏夹(集合)> 产品(文档)

这怎么可能从index.js 中实现?这是我的代码:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.updateFavoritedProducts = functions.firestore.document('products/{productId}').onUpdate((change, context) => {

admin.firestore().collection('products').get(queryProductsSnapshot => {

queryProductsSnapshot.forEach(productQuery => {
const pricePQ = productQuery.price;

console.log('tetesfsf');

return admin.firestore().collection('users').get(queryUsersSnapshot => {
queryUsersSnapshot.forEach(userSnapshot => {

return admin.firestore().collection('users').doc(userSnapshot.id).collection('favorites').get(queryUserProductsSnapshot => {
queryUserProductsSnapshot.forEach(queryUserProductSnapshot => {
if (queryUserProductSnapshot.id === productQuery.id) {

return admin.firestore().doc(`users/${userSnapshot.id}/favorites/${queryUserProductSnapshot.id}`).update({ amountVolume: '123456'
})
} else {
console.log("No events found");
return null
}
})
});
})
})
});
})
});

最佳答案

如果您想创建一个在所有用户的所有产品更新时触发的云函数,请将其声明为:

functions.firestore.document('users/{userId}/products/{productId}').onUpdate((change, context) => {

如果您想访问函数体内的userIdproductId,您可以通过以下方式获取它们:

context.params.userId
context.params.productId

关于node.js - 更新 CloudFunctions 上的子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58653220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com