我正在进行一个项目,我使用express in firebase函数来运行使用手柄的服务器端渲染页面,一切都很好,但当我使用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)
函数工作正常,但当尝试constdb=admin.firestore((时给我错误,我也尝试了函数和firestore的模拟器,但仍然得到相同的错误
请帮帮我我做错了什么
提前感谢
我可以重现这个问题,似乎模块没有在您的环境中加载。我可以注意到您提到您使用了其他环境来测试这一点。
在本地环境中,尝试运行一个测试,在该测试中,您只需用";const db=admin.firestore(("你应该会得到和以前一样的错误,但我会要求他们运行";npm安装firebase admin-save"根据本文档,这将获得与nodejs一起使用的模块。
在firebase函数中,您应该根据其他文档在package.json中定义模块,这应该可以解决错误消息,该消息告诉我们节点无法识别模块的语法或命令(因为模块未加载(。