Firebase 函数 Auth.onCreated() 触发未知

问题描述 投票:0回答:1

我开始间歇性地收到此错误

⬢函数:无法从源加载函数定义:FirebaseError:无法成功分析函数代码库。它可能有语法或运行时错误

启动模拟器时。向 Google 提交的错误报告推测了各种各样的事情,但尚不清楚根本原因,因此我一直在不断重新启动,直到不再抛出错误为止。现在,100% 的情况下我也会遇到这个额外的错误。经过几个小时的切换,不断地猜测和检查各种兔子洞,我不知所措。这是我在尝试启动模拟器时不断收到的错误:

TypeError: Cannot read properties of undefined (reading 'user')
    at Object.<anonymous> (src/git/rep-us-functions/functions/index.js:6:34)
    at Module._compile (node:internal/modules/cjs/loader:1369:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1427:10)
    at Module.load (node:internal/modules/cjs/loader:1206:32)
    at Module._load (node:internal/modules/cjs/loader:1022:12)
    at Module.require (node:internal/modules/cjs/loader:1231:19)
    at require (node:internal/modules/helpers:179:18)
    at loadModule (src/functions/node_modules/firebase-functions/lib/runtime/loader.js:40:16)
    at loadStack (src/functions/node_modules/firebase-functions/lib/runtime/loader.js:157:23)
    at src/functions/node_modules/firebase-functions/lib/bin/firebase-functions.js:56:56

⬢  functions: Failed to load function definition from source: FirebaseError: Functions codebase could not be analyzed successfully. It may have a syntax or runtime error

这是

functions/index.js
的最小可重现版本:

admin.initializeApp();

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

exports.created = functions.auth.user().onCreate(async (user) => {
  const email = user.email;
  console.log(email);
  return;
});

还有

functions/package.json
的内容:

  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase emulators:start --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log",
    "build:watch": "tsc -w"
  },
  "engines": {
    "node": "20"
  },
  "main": "index.js",
  "dependencies": {
    "firebase-admin": "^12.5.0",
    "firebase-functions": "^6.0.0",
    "nodemailer": "^6.9.13",
    "npm": "^10.8.3"
  },
  "devDependencies": {
    "firebase-functions-test": "^3.1.0"
  },
  "private": true
}
node.js firebase-authentication google-cloud-functions firebase-tools
1个回答
0
投票

我已经让模拟器再次运行了。很难说出我在调试过程中尝试过的 1,000 种方法中的哪一种,但我始终没有再遇到这种失败。无论我的代码在幕后是否按预期运行,我都持怀疑态度。

按照其网站上当前的 Firebase 初始化说明,提供了一个空白的 Firebase 功能项目模拟器,但仍然产生此错误。我手动将最新版本的

firebase-tools
firebase-admin
firebase-functions
以及从
node@18
回滚到
@20
。完成所有这些后,我现在在启动模拟器时不再看到神秘的错误消息。

解决方案: 我最好的猜测是,这与主要版本升级到

[email protected]
有关。注释表明存在一个重大更改,将默认函数版本从 v1 设置为 v2,但我已经只使用 v2,所以我不知道为什么这会导致任何问题。

版本的神奇组合:

[email protected]
[email protected]
[email protected]
[email protected]

Google 非常需要向

firebase-debug.log
添加调试跟踪,以伴随无意义的消息。我仍然不知道他们的代码内部到底出了什么问题。

© www.soinside.com 2019 - 2024. All rights reserved.