Как использовать await async в облачной функции Firebase? - PullRequest
0 голосов
/ 20 ноября 2018

Я собрал несколько облачных функций в nodejs 6, и теперь я хочу использовать await. Как я могу это сделать? Как я могу перейти на узел 8? Я не хочу переходить на машинопись.

Я пытался добавить "engines": {"node": "8"} в package.json, но это ничего не изменило.

Это тестовая облачная функция, которую я сделал:

exports.awaittest = functions.https.onRequest(async (req, res)=>{
    ref = await admin.database().ref("/something/");
    res.send(ref)
})

когда я пытаюсь развернуть его (с отредактированным package.json), я получаю это:

SyntaxError: Unexpected token (
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at getUserFunction (/var/tmp/worker/worker.js:413:24)
!  functions[awaittest]: Deployment error.
Function load error: Code in file index.js can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /user_code/index.js:59
exports.awaittest = functions.https.onRequest(async (req, res)=>{
                                                    ^

Как мне перейти на узел 8? У меня уже есть 6 функций, развернутых в node6.

1 Ответ

0 голосов
/ 21 ноября 2018

Я решил это в каталоге functions/.eslintrc.json, изменив следующее:

"parserOptions": {
  "ecmaVersion": 6
}

// to

"parserOptions": {
  "ecmaVersion": 2017
}
'''
...