【问题标题】:Google Firebase Cloud Functions generates error when using Firestore and implemented per the docsGoogle Firebase Cloud Functions 在使用 Firestore 时会产生错误并根据文档实现
【发布时间】:2020-04-10 05:41:17
【问题描述】:

使用以下代码:

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

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

这完全来自example docs,...从cli运行firebase emulators:start会产生以下错误:

 ⚠  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)

SO 和其他网站上的其他几个示例调用 #initializeApp 和 initializeApp(functions.config().firebase) ...但这也会引发相同的错误。

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

"dependencies": {
    "firebase-admin": "^8.6.0",
    "firebase-functions": "^3.3.0"
  }

更新:虽然命令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"
}

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

【问题讨论】:

  • PS - 这是我函数库中唯一的函数
  • 如果您对问题有更新或修改,您可以简单地编辑问题而不是添加评论。
  • 如果有明确的复制步骤表明 Firebase CLI 中可能存在错误,请在 Firebase CLI GitHub 上发布问题。 github.com/firebase/firebase-tools
  • @DougStevenson - 我无法在新初始化的项目中重现它......这确实有效。但是,如果我将 firebase 配置文件和函数文件夹从新的初始化文件夹复制到项目文件夹,我仍然会收到错误消息。如果我重新初始化项目文件夹,也会发生同样的情况。是否有任何其他配置文件或缓存可能会影响它在新文件夹中工作的原因,而不是在新初始化的现有文件夹中?

标签: firebase google-cloud-functions firebase-cli


【解决方案1】:

似乎是firebase@7.6.1 中的一个错误。回到firebase@7.6.0 为我修复它。

直接依赖

因为对我来说,firebase 是一个直接依赖项,这可以解决问题:

npm i -S firebase@7.6.0 --force

间接依赖

但是,在您的情况下,这是一种间接依赖——尝试找出您的安装使用的版本:

npm list firebase

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

【讨论】:

    猜你喜欢
    • 2018-08-21
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 2021-04-13
    • 2018-03-16
    相关资源
    最近更新 更多