Повторное использование подстановочных знаков в функциях Firebase - PullRequest
0 голосов
/ 15 сентября 2018

Я проверяю onUpdate из {postId} и хочу выполнить вызов базы данных firebase с тем же {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} in upvotes/ имел то же значение, что и {postId}, когда я проверяю score .. будет ли он работать так?

1 Ответ

0 голосов
/ 15 сентября 2018

Триггеры базы данных реального времени принимают второй аргумент, который вы не используете в своей функции:

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

Это объект EventContext , который содержит params свойство со значениями подстановочных знаков в пути.Вы можете использовать его просто так:

const postId = context.params.postId

Затем вы можете использовать строку postId для построения других ссылок.

Более подробное обсуждение приведено в документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...