在我的云函数中,我有下一个功能:
export const collectionOnUpdate = functions.firestore.document('cards/{id}').onUpdate(async (change, context) => {
await updateDocumentInAlgolia(change);
});
并且每次编辑文档的任何字段时都会触发此功能。但是我只想在更改了特定字段之一(在这种情况下,例如:title
,category
)时运行它,而不要在其他任何字段时运行。
我该怎么做?
答案 0 :(得分:2)
firebase firstore cloud functions
是基于文档更改而不是基于文档字段的作品。
因此,如果要检查某些字段是否有任何更改,则必须手动检查
exports.updateUser = functions.firestore
.document('users/{userId}')
.onUpdate((change, context) => {
// ...the new value after this update
const newValue = change.after.data()||{};
// ...the previous value before this update
const previousValue = change.before.data()||{};
// access a particular field as you would any JS property
//The value after an update operation
const new_name = newValue.name;
// the value before an update operation
const old_name = previousValue.name;
if(new_name!==old_name){
//There must be some changes
// perform desired operations ...
}else{
//No changes to the field called `name`
// perform desired operations ...
}
});
答案 1 :(得分:0)
根据official docs,函数仅响应文档更改,而不能监视特定的字段或集合。