簡體   English   中英

如何使用express在firebase函數中使用firestore?

[英]How to use firestore in firebase functions with express?

我正在開發一個項目,我在 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 的模擬器,但仍然得到相同的錯誤

請幫助我我在這里做錯了什么

提前致謝

我可以重現這個問題,該模塊似乎未加載到您的環境中。 我注意到你提到你使用其他環境來測試這個。

在本地環境中嘗試運行一個測試,在該測試中你只用“const db = admin.firestore()”初始化模塊,你應該得到和以前一樣的錯誤,但我會要求運行“npm install firebase-admin --save" 根據本文檔,這將獲取要與節點 js 一起使用的模塊。

在 firebase 函數中,您應該按照其他文檔在 package.json 中定義模塊,這應該可以解決錯誤消息,該消息告訴我們節點無法識別模塊中的語法或命令(因為模塊未加載)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM