在编写Firebase规则时,您可以通过request.resource.data
访问请求数据。这很有用,因为您可以查看请求的性质来确定其意图,其写入目标以及允许或拒绝。与使用嵌套的文档集合相比,这可以将属性合并到用户拥有的文档中的对象中。
我想在云函数回调update / write / etc中访问相同的请求数据,但是我看不到它,因此我要做一个与change.before
和{{ 1}}。这不是问题,但是我是否错过了文档中的某些内容?
每个文档:https://firebase.google.com/docs/firestore/extend-with-functions
change.after
答案 0 :(得分:0)
当我意识到a function listening for updates被触发而与属性进行更新无关,尽管进行了'status' in data
检查,我也遇到了完全相同的问题。该数据表示handler.after.data
的捕获量。尽管我无法从handler
或context
访问请求数据,但我还是可以通过添加一个具有相同目的的附加检查来解决该问题。即:
const dataBefore = handler.before.data();
const dataAfter = handler.after.data();
if (status in dataBefore && status in dataAfter) {
if (dataBefore.status === 'unpublished' && dataAfter.status === 'published') {
// handle update
}
}