- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一些帮助。
我的项目有 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) => {
如果您想访问函数体内的userId
或productId
,您可以通过以下方式获取它们:
context.params.userId
context.params.productId
关于node.js - 更新 CloudFunctions 上的子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58653220/
我正在尝试通过云代码删除文件。但是这个脚本失败了: Parse.Cloud.define("deleteFile1", function(request, response) { Pars
自 0.2.0 版 cloud_functions 开始,Flutter 使用 .getHttpsCallable() 而不是 .call()。新方法定义为: /// @param functionN
我正在尝试向设备在 firebase 数据库中拥有的所有用户发送通知,但它在云函数的寄存器中显示:“ReferenceError:值未定义”。 应该做的是:每次在“通知”中进行更改时,您必须获取更改的
我需要一些帮助。 我的项目有 2 个集合,一个称为“产品”,另一个称为“用户”。 我将所选产品信息复制到用户的子集合中作为收藏夹,在本例中: 用户(集合)> 用户(文档)> 收藏夹(集合)> 产品(文
我需要一些帮助。 我的项目有 2 个集合,一个称为“产品”,另一个称为“用户”。 我将所选产品信息复制到用户的子集合中作为收藏夹,在本例中: 用户(集合)> 用户(文档)> 收藏夹(集合)> 产品(文
我正在使用云功能通过设备 token 发送通知。 const payload: admin.messaging.MessagingPayload = { notificatio
我有一个包含下一项的集合,其中一个属性是日期: id: xxxxxx name: xxxx date: August 21, 2018 at 1:00:00 AM UTC+8 (timestamp
我正在尝试实现一个可以运行 ffmpeg 的 Cloudfunction在谷歌存储桶上传。我一直在玩基于 https://kpetrovi.ch/2017/11/02/transcoding-vide
给定一些通用的 Python 代码,结构如下...... cloudbuild.yaml requirements.txt functions/ folder_a/ test/
我尝试调用云函数并传递一些数据。我的数据类型为 Map里面又嵌套了一些 Map .当试图用这个调用我的函数时: getHttpsCallable(function).call(data)... 我收到
我们有单独的 GCP 项目用于“构建”和“生产”环境。我想将 Cloud Build 用于“build”项目以在“prod”项目中部署 Cloud Function。跟随 documentation
我正在尝试从 Firebase 云功能访问我的存储 但我无法访问它 它给了我 类型错误:storage.ref 不是函数 这是我的代码 const functions = require('fireb
我在尝试使用以下方法部署谷歌云 HTTP 函数时刚开始遇到错误: gcloud functions deploy http_function --trigger-http 现在我收到这样的错误: ER
我有两个收藏。一个是 jobs,另一个是 users。 用户可以选择喜欢的类别名称。我存储在 User 集合中...在 job 中,我使用 categoryName 存储所有类别。 当向job 和这个
如何将 admin.firestore.FieldValue.serverTimestamp() 传递给 update() 方法? 我想将其插入到一个数组中,如下所示: import * as fun
我是一名优秀的程序员,十分优秀!