当前位置: 首页 > 面试题库 >

Firebase函数无法部署:SyntaxError:意外的令牌函数

郭逸清
2023-03-14
问题内容

我正在尝试将功能部署到Firebase,并且在部署过程中出现错误

错误:功能未正确部署。

可以将其与异步功能链接吗?

实际行为 函数部署时出错,cli向我显示以下消息:

===============控制台日志================

> eslint .
✔  functions: Finished running predeploy script.
i  functions: ensuring necessary APIs are enabled...
✔  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (56.39 KB) for uploading
✔  functions: functions folder uploaded successfully
i  functions: updating function sendContactEmailOAuth...
⚠  functions[sendContactEmailOAuth]: 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:13
 async function getJwt() {
       ^^^^^^^^

===============函数index.js文件================

const functions = require('firebase-functions');


const admin = require('firebase-admin');
   admin.initializeApp();

   const { JWT } = require('google-auth-library/build/src/index');

   exports.sendContactEmailOAuth = functions.https.onRequest((req, res) => {
 const sender_msg = 'just a test'
 const email = 'contact@lechorodescharentes.org'

 async function getJwt() {
   const client = new JWT(
     functions.config().service_key.client_email,
     null,
     functions.config().service_key.private_key,
     ['https://www.googleapis.com/auth/cloud-platform', 'https://mail.google.com'],
   );
     await client.authorize();
      const url = `https://www.googleapis.com/dns/v1/projects/${functions.config().service_key.project_id}`;
   const res = await client.request({ url });
   console.log(res.data);
 }

getJwt();

  /*  send email with nodemailer to be inserted here */
 });

=============== package.json文件================

{
 "name": "functions",
 "description": "Cloud Functions for Firebase",
 "scripts": {
   "lint": "eslint .",
   "serve": "firebase serve --only functions",
   "shell": "firebase functions:shell",
   "start": "npm run shell",
   "deploy": "firebase deploy --only functions",
   "logs": "firebase functions:log"
 },
 "dependencies": {
   "firebase-admin": "~5.12.0",
   "firebase-functions": "^1.0.2",
   "firebase-tools": "^3.18.4",
   "google-auth-library": "^1.4.0",
   "nodemailer": "^4.6.4"
 },
 "devDependencies": {
   "eslint": "^4.12.0",
   "eslint-plugin-promise": "^3.6.0"
 },
 "private": true
 }

问题答案:

截至 2019年9月

  1. 更新firebase-admin: npm install --save firebase-admin
  2. 更新firebase功能: npm install --save firebase-functions
  3. 添加"engines": { "node": "10" }到您的/functions/package.json
    ...
    "dependencies": {
        "firebase-admin": "^8.5.0",
        "firebase-functions": "^3.2.0"
      },
      "devDependencies": {
        "tslint": "~5.19.0",
        "typescript": "~3.6.2"
      },
      "engines": {
        "node": "10"
      }
    ...

截至 2018年8月

云功能现在支持节点8(8.11.1)。查看此博客文章。

升级到节点8

如本博文所述,请按照以下步骤升级到Node 8:

  1. 通过以下方式升级您的Firebase功能版本 npm install --save firebase-functions@latest
  2. 通过以下方式升级firebase-tools npm update -g firebase-tools
  3. 添加"engines": { "node": "8" }到您的/functions/package.json


 类似资料:
  • 使聊天应用程序通过Node in action引用,并在运行server.js时,得到以下错误:function serveStatic(response,cache,absPath)^^^^^^^^^^^^syntaxerror:exports.runinthiscontext(VM.JS:73:16)在module._compile(module.js:543:28)在object.modul

  • 因此,我尝试使用async/await,但出现以下错误: 代码如下:

  • 每当我运行“Firebase部署-只有函数”时,它就会出现这个错误分析函数触发器时出错。 类型错误:函数。https。onCall(…)。那么它就不是对象的函数了。(C:\Users\Lenovo\Desktop\Firebase Revision\functions\index.js:11:4)在模块中_在对象处编译(internal/modules/cjs/loader.js:1158:30)

  • 我正在尝试使用节点版本6.2.1与我的一些代码。计划将大多数面向超回调的代码迁移到看起来更干净、性能更好的代码。 我不知道为什么,当我试图执行节点代码时,终端抛出了一个错误。 你好。js 日志- 我错过了什么?请给我一些同样的灯。 更新1: 我试着按照昆汀的建议使用巴贝尔,但是,我仍然得到以下错误。 更新代码- 日志-

  • 我已经创建了一个firebase函数,一旦触发就发送电子邮件。问题是,当我尝试部署它时,它会给我一个错误 null 下面是我当前的代码: 我该如何解决这件事?

  • 问题内容: 尝试进行呼叫并检索一个非常简单的一行JSON文件。 这是RAW请求: 这是RAW回应: 响应中返回了JSON(红色:#f00),但Chrome报告了 Uncaught SyntaxError:Unexpected token:colors.json:1 如果我直接导​​航到url本身,则返回JSON并显示在浏览器中。 如果我将colors.json的内容粘贴到JSLINT中,则json