Firebase Cloud Functions 部署错误 - SyntaxError:意外的标记“?”

Lan*_*ria 12 node.js firebase google-cloud-functions

我刚刚更新到:

npm: 8.11.0
node: v16.15.1
Run Code Online (Sandbox Code Playgroud)

新编辑

我刚刚又更新了sudo n latest

npm: 8.12.1
node: v18.4.0
Run Code Online (Sandbox Code Playgroud)

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

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

当我查看日志时:

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.
Run Code Online (Sandbox Code Playgroud)

索引.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);
    });
});
Run Code Online (Sandbox Code Playgroud)

再次新编辑

包.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
}
Run Code Online (Sandbox Code Playgroud)

Lan*_*ria 24

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

老的:

"engines": {
    "node": "12" // causes error
  }
Run Code Online (Sandbox Code Playgroud)

新的:

"engines": {
    "node": "16" // error is now gone
  }
Run Code Online (Sandbox Code Playgroud)


nvv*_*tal 7

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

npm install --save firebase-admin@10.3 
Run Code Online (Sandbox Code Playgroud)