Firebase 带云函数的异步函数(异步上的语法错误)

Firebase 带云函数的异步函数(异步上的语法错误),firebase,google-cloud-functions,firebase-cli,Firebase,Google Cloud Functions,Firebase Cli,我的index.js中有以下代码: exports.queryAPI = functions.https.onRequest((request, response) => { return cors(request, response, () => { return APICall(request.params.searchTerm).then((result) => { console.log(result); return res

我的index.js中有以下代码:

exports.queryAPI = functions.https.onRequest((request, response) => {
  return cors(request, response, () => {
    return APICall(request.params.searchTerm).then((result) => {
        console.log(result);
        return result;
      }).catch(() => {
        return response.status(400).json({ error: 'Something went wrong.' });
      })
  });
});

async function APICall(search) {
  const response = await apicalypse({
    queryMethod: "body",
    headers: {
      'Accept': 'application/json',
      'user-key': API_KEY
    },
    responseType: 'json',
    timeout: 1000,
    })
    .fields(["name"]) // fetches only the name and movies fields
    .search(search) // search for a specific name (search implementations can vary)

    // .where("age > 50 & movies != n") // filter the results
    // .where(["age > 50", "movies != n"]) // same as above
    .request(API_URL);

  return response.data;
}
当我尝试部署此函数时,出现以下错误:

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:34
async function APICall(search) {
      ^^^^^^^^

SyntaxError: Unexpected token function

根据我的搜索,我用async正确地完成了函数。是否有人指出我犯了错误?

您可能在本地计算机上使用的节点版本低于8。Version8是第一个支持ES7异步/等待语法的版本。因此,首先要更新本地节点安装。使用
节点--version
检查版本


默认情况下,云函数使用节点6作为运行时,因此如果您希望运行使用async/await的部署代码,还必须将Firebase CLI告知目标节点8。节点8支持处于测试阶段。您可以在和中阅读有关定位节点8的信息。

您可能在本地计算机上使用的节点版本低于8。Version8是第一个支持ES7异步/等待语法的版本。因此,首先要更新本地节点安装。使用
节点--version
检查版本


默认情况下,云函数使用节点6作为运行时,因此如果您希望运行使用async/await的部署代码,还必须将Firebase CLI告知目标节点8。节点8支持处于测试阶段。您可以在和中阅读有关定位节点8的信息。

需要node.js版本8。在开发计算机上执行此操作:

nvm install 8.6.1
nvm alias default 8.6.1
然后在
functions
目录中,打开
package.json
并添加:

  "engines": {
    "node": "8"
  },

需要Node.js版本8。在开发计算机上执行此操作:

nvm install 8.6.1
nvm alias default 8.6.1
然后在
functions
目录中,打开
package.json
并添加:

  "engines": {
    "node": "8"
  },

那确实是我的错误。我在Firebase CLI上添加了目标节点8。添加了
“引擎”:{“节点”:“8”}
并成功部署。这确实是我的错误。我在Firebase CLI上添加了目标节点8。添加了
“引擎”:{“节点”:“8”}
并成功部署。