当前位置: 首页 > 知识库问答 >
问题:

如何在firebase函数中与express一起使用firestore?

岳鸿畴
2023-03-14

我正在进行一个项目,在该项目中,我使用firebase函数中的express来运行使用手柄的服务器端渲染页面,一切都很正常,但当我使用firestore admin sdk时,我遇到以下错误:

SyntaxError: Invalid or unexpected token
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)

我在函数/index.js文件中使用此代码

const functions = require('firebase-functions');
const express = require('express')
const engines = require('consolidate')
const cookieParser = require('cookie-parser')
const serviceAccount = require('./lendme360-firebase-adminsdk-easkh-d9130c0494.json');
var admin = require('firebase-admin')
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
})

const stripe = require('stripe')('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
const db = admin.firestore()
const app = express()
app.engine('hbs', engines.handlebars)
app.set('views', './views')
app.use(cookieParser())
app.set('view engine', 'hbs')
...
...
...
...
...
exports.app = functions.https.onRequest(app)

函数工作正常,但尝试const db=admin时。firestore()给了我一个错误。我还尝试了函数和firestore的模拟器,但仍然得到了相同的错误

请帮帮我我做错了什么

提前谢谢

共有1个答案

汪修诚
2023-03-14

我可以复制这个问题,似乎模块没有加载到您的环境中。我注意到您提到您使用了其他环境来测试这一点。

在本地环境中,尝试运行一个测试,在该测试中,您只需用"const db=admin.firestore()"初始化模块,您应该会得到与之前相同的错误,但他们我会要求运行"npm安装Firebase-管理-保存"根据这个留档,这将获取与节点js一起使用的模块。

在firebase函数中,您应该在包中定义模块。json根据其他文档,这应该可以解决错误消息,该消息告诉我们node无法识别来自模块的语法或命令(因为模块未加载)。

 类似资料:
  • 问题内容: 当我尝试将Webpack与简单的Express服务器一起使用时,总是会收到大量错误消息: express.js 我得到所有这些错误: 这是我的配置文件: 我该怎么办,我还需要在服务器端使用webpack。 我像这样运行express.js文件: 问题答案: 我最终要做的是,我使用了两种不同的配置,一种用于使用webpack将服务器内容打包在一起,另一种用于将所有浏览器内容打包在一起,并

  • 所以我导入PromiseKit,然后尝试 显然,这是行不通的,我想知道,如果可能的话,我还缺少什么可以让Firebase的promise发挥作用。我试图实现的是用一个catch方法一次性删除四个Firebase引用。 使用nodeJs,我可以轻松使用: 有没有办法在Swift中实现这一点?

  • 问题内容: 我正在尝试运行SQL查询以获取四个随机项。由于表中product_filter有多个toupleproduct我必须使用DISTINCTin SELECT,所以出现此错误: 对于SELECT DISTINCT,ORDER BY表达式必须出现在选择列表中 但是,如果我RANDOM()输入了SELECT它,将会避免DISTINCT结果。 有人知道如何DISTINCT与RANDOM()功能一

  • 问题内容: 我正在尝试在我的watchKit应用中使用firebase数据库。我已经在我的iPhone应用程序上开发了此功能,但是发现在我的Watch应用程序上很难做到这一点。当我尝试将firebase导入watch应用程序的VC类中时,它正在创建error 。 可以在Watch app中使用Firebase吗? 问题答案: 可悲的是,没有支持,并由于这样的事实,有没有支持在这些版本中,并高度依赖

  • 本文向大家介绍MySQL REPLACE()函数如何与WHERE子句一起使用?,包括了MySQL REPLACE()函数如何与WHERE子句一起使用?的使用技巧和注意事项,需要的朋友参考一下 我们知道WHERE子句用于在MySQL查询中放置条件,并且MySQL根据这些条件返回结果集。类似地,当我们将函数与WHERE子句一起使用时,结果集将取决于提供的条件。以下是使用“学生”表中的数据的示例,其中函

  • 假设我有对象:bob1,cob2。我想为类B和C建立一个析构函数,但我不确定如何销毁B.BB和C.CC以及如何访问它们。还有,有没有办法让我做到这一点,而不让类成为a类的朋友?