繁体   English   中英

Firebase 云函数部署错误 - SyntaxError: Unexpected token '?'

[英]Firebase Cloud Functions Deploy Error- SyntaxError: Unexpected token '?'

我刚刚更新为:

npm: 8.11.0
node: v16.15.1

新编辑

我刚刚再次更新sudo n latest

npm: 8.12.1
node: v18.4.0

我正在尝试部署新的云 function firebase deploy --only functions:deleteUser但我不断收到 cli 错误:

Function 加载用户代码失败。 这可能是由于用户代码中的错误。 错误消息:错误:请检查您的 function 日志以查看错误原因

当我查看日志时:

 deleteUser Detailed stack trace: /workspace/node_modules/firebase-admin/lib/app/firebase-namespace.js:84 this.INTERNAL = new FirebaseNamespaceInternals(appStore?? new lifecycle_1.AppStore()); Provided module can't be loaded. Is there a syntax error in your code? SyntaxError: Unexpected token '?' at wrapSafe (internal/modules/cjs/loader.js:915:16) at Module._compile (internal/modules/cjs/loader.js:963:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module._load (internal/modules/cjs/loader.js:708:14) at Module.require (internal/modules/cjs/loader.js:887:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.<anonymous> (/workspace/node_modules/firebase-admin/lib/default-namespace.js:19:30) at Module._compile (internal/modules/cjs/loader.js:999:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) Could not load the function, shutting down.

索引.js:

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

exports.deleteUser = functions.https.onCall((data, context) => {

    const userID = data.userID;

    admin.auth().deleteUser(userID)
    .then(() => {
        console.log('Successfully deleted userID: ', userID);
        return true // without this Return I get a different error: Each then() should return a value or throw  promise/always-return
    })
    .catch((error) => {
        console.log('Error deleting user: ', error);
    });
});

再次新编辑

Package.json:

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "lint": "eslint .",
    "serve": "firebase emulators:start --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "12"
  },
  "main": "index.js",
  "dependencies": {
    "@google-cloud/logging": "^8.1.1",
    "firebase-admin": "^11.0.0",
    "firebase-functions": "^3.11.0",
    "save": "^2.4.0"
  },
  "devDependencies": {
    "eslint": "^5.12.0",
    "eslint-plugin-promise": "^4.0.1",
    "firebase-functions-test": "^0.2.0"
  },
  "private": true
}

感谢@raina77ow 在评论中的提示 我必须进入我的package.json文件,只需将节点版本从 12 更改为 16

老的:

"engines": {
    "node": "12" // causes error
  }

新的:

"engines": {
    "node": "16" // error is now gone
  }

我在 Windows 上遇到了同样的问题,但更改节点版本并没有解决它。 在此处发布以防其他人遇到类似问题并且此解决方案不起作用。

这只发生在我的 Windows 机器上,相同的代码在 Mac 上运行良好。

对于 node 12.x 版本的用户:

npm install --save firebase-admin@10.3 

我一直在 package.json 中的引擎节点 16 上,尽管我之前部署的 function 正在使用我的节点 14。我在部署时遇到了同样的错误。6

删除已部署的 function 并尝试再次部署后,我仍然遇到相同的错误。 (现在我根本没有部署 function XD)

还有什么可能吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM