多个集合的云函数触发器

exports.myFunction = functions.firestore

    .document('users/{userID}')

    .onDelete((snap, context) => {

        // do something

    });

我希望这个函数也为另一个集合触发,比如offices. 在不复制和粘贴整个内容的情况下执行此操作的最佳方法是什么?


大话西游666
浏览 169回答 2
2回答

心有法竹

路径中的任何内容都可以是通配符,因此如果要在所有集合上触发:exports.myFunction = functions.firestore    .document('{collectionName}/{userID}')    .onDelete((snap, context) => {        // do something    });但是,无法设置在两个但并非所有集合上触发的单个路径。如果需要,只需通过在 aa(常规非云)函数中隔离该代码来最小化代码重复:exports.myFunction = functions.firestore    .document('users/{userID}')    .onDelete((snap, context) => {        doSomething(...)    });exports.myFunction = functions.firestore    .document('offices/{officeID}')    .onDelete((snap, context) => {        doSomething(...)    });function doSomething(...) {    ...}

慕容森

添加到另一个答案,您可以使用检查来执行通配符功能:exports.myfunction = functions.firestore    .document('{colId}/{docId}')    .onWrite(async (change, context) => {        const col = context.params.colId;        const doc = context.params.docId;        if (col === 'users' || col === 'offices') {          return...        }        return null;    });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript