在Firebase Functions中重用通配符值

时间:2018-09-15 01:37:54

标签: firebase firebase-realtime-database google-cloud-functions

我正在检查$("#my_input_id1, #my_input_id2, #my_input_id3").on("change",function(){ var inputItem = $(this); readURL(inputItem); }); 中的<input type="file" class="inputItem" data-img="my_img_id1" data-btn="my_btn_id1"> <input type="file" class="inputItem" data-img="my_img_id2" data-btn="my_btn_id2"> <input type="file" class="inputItem" data-img="my_img_id3" data-btn="my_btn_id2"> ,并且我想使用相同的$(".inputItem").on("change",function(){ var imgid = $(this).attr("data-img"); var btnid = $(this).attr("data-btn"); // then you can create dynamic selectors // ... $("#"+imgid).attr('src', e.target.result); $("#"+btnid).show(); }); 运行firebase数据库调用。这是我的代码:

onUpdate

基本上,我希望{postId}中的{postId}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; }); 具有相同的值,当我检查{postId}时..这样可以吗?

1 个答案:

答案 0 :(得分:3)

实时数据库触发器接受您在函数中未使用的第二个参数:

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中有更多讨论。