Google Firebase Cloud Functions 在使用 Firestore 并根据文档实施时产生错误

Tre*_*pps 5 firebase google-cloud-functions firebase-cli

使用以下代码:

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

exports.onTest = functions.https.onRequest(async (req, res) => {
  res.json({ msg: 'done' })
})
Run Code Online (Sandbox Code Playgroud)

这完全来自示例文档,...firebase emulators:start从 cli运行会生成以下错误:

 ?  TypeError: instance.registerVersion is not a function
    at registerDatabase (/Users/<path>/functions/node_modules/@firebase/database/dist/index.node.cjs.js:15188:14)
    at Object.<anonymous> (/Users/<path>/functions/node_modules/@firebase/database/dist/index.node.cjs.js:15200:5)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at FirebaseNamespace.get [as database] (/Users/tremendus/Development/kulanu/playground/kulanu-cloud/functions/node_modules/firebase-admin/lib/firebase-namespace.js:282:38)
?  We were unable to load your functions code. (see above)
Run Code Online (Sandbox Code Playgroud)

在SO和其他网站其他几个例子调用#initializeAppinitializeApp(functions.config().firebase)......但是这也引发了同样的错误。

我在本地使用节点 8 函数和节点 8 以及基本的 pacakage.json 依赖项:

"dependencies": {
    "firebase-admin": "^8.6.0",
    "firebase-functions": "^3.3.0"
  }
Run Code Online (Sandbox Code Playgroud)

更新:虽然命令firebase emulators:start抛出上述错误,但这些函数在 shell 中工作:

MacPro:functions: firebase functions:shell
?  functions: Emulator started at http://localhost:5000
>  function: apiOnSave
i  functions: Loaded functions: apiOnSave
firebase > apiOnSave()
Sent request to function.
firebase > >  function: apiOnSave

RESPONSE RECEIVED FROM FUNCTION: 200, {
  "msg": "done"
}
Run Code Online (Sandbox Code Playgroud)

没有人对如何解决这个问题有建议吗?

Dom*_*omi 2

似乎是一个错误firebase@7.6.1。回去firebase@7.6.0帮我修复它。

直接依赖

因为对我来说,firebase是直接依赖,所以这样做可以解决问题:

npm i -S firebase@7.6.0 --force

间接依赖

然而,在您的情况下,它是一个间接依赖项 - 尝试找出您的安装使用的版本:

npm list firebase

尝试返回到firebase-admin使用firebase-functions早期版本的 的版本firebase