代码之家  ›  专栏  ›  技术社区  ›  Simon

在Firebase函数中重用通配符值

  •  0
  • Simon  · 技术社区  · 6 年前

    onUpdate {postId} ,我想用这个函数运行firebase数据库调用 {posted} .. 如果这有道理的话。这是我的密码:

    exports.handleVoteKarma = functions.database
    .ref('upvotes/{postId}')
    .onUpdate(async change => {
        const scoreBefore = change.before.val() || 0;
        const scoreAfter = change.after.val();
        //This {postId} should be the same as the one above for the upvotes/{postId}
        adb.ref('{item}/{loc}/{postId}/score').once('value').then((usr) => {
    
        });
        return null;
    });
    

    基本上我想要 {posted} upvotes/ 具有与 当我检查 score .. 这样行吗?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Doug Stevenson    6 年前

    实时数据库触发器接受第二个参数,您在函数中没有使用该参数:

    exports.handleVoteKarma = functions.database
    .ref('upvotes/{postId}')
    .onUpdate(async (change, context) => {
        // note the "context" parameter here
    });
    

    这是一个 EventContext 对象并包含 params 属性的值。您可以这样简单地使用它:

    const postId = context.params.postId
    

    然后你可以使用 postId 稍后使用字符串来构建其他引用。

    会议上有更多的讨论 documentation