无法配置触发器提供者/cloud.firestore/eventTypes/document.update

Jus*_* M. 4 google-cloud-functions

我计划每次在用户节点中的 user_type 上发生更新时更新 news_author_user_type

这是我的代码

exports.onUpdateUserType = functions.firestore
    .document('users/{user_id')
    .onUpdate((change, context) => {
        const newUserDoc = change.after.data();
        const user_type = newUserDoc.user_type;
        const user_id = context.auth.uid;

        const db = admin.firestore();
        const newsRef = db.collection('news').where('news_author_id', '==', user_id);
        const news =  newsRef.get().then(onSnapshot => {
            onSnapshot.forEach(result => {
                const news_id = result.id;
                const newsDoc = db.doc(`news/${news_id}`);
                const news_author_type = {
                    news_author_type:user_type
                };
                newsDoc.update(news_author_type).then(onUpdate => {
                    return onUpdate;
                }).catch(onErrorUpdate => {
                    return onErrorUpdate;
                });
            });
        });
    });
Run Code Online (Sandbox Code Playgroud)

小智 12

检查 de 函数触发器是否有拼写错误。

functions.firestore.document('users/{user_id')
Run Code Online (Sandbox Code Playgroud)

这应该是:

functions.firestore.document('users/{user_id}')
Run Code Online (Sandbox Code Playgroud)


omo*_*nle 7

检查函数触发器是否有错别字。

functions.firestore.document('users/{doc-id}')
Run Code Online (Sandbox Code Playgroud)

这应该是:

functions.firestore.document('users/{id}')
Run Code Online (Sandbox Code Playgroud)

连字符不允许函数正确部署


Ben*_*ing 6

未来的读者

还要确保您没有$在通配符中使用字符(我不小心这样做了)。

functions.firestore.document('users/${user_id}')

(注意$不应该出现的标志)

这应该是:

functions.firestore.document('users/{user_id}')

它不是 JS 模板文字