首页 > 解决方案 > 如何在 express 上使用共享的 firestore 实例?

问题描述

我有一个带有 Express 应用程序的 Firebase Functions,我想在多个控制器上使用 Firestore 实例。所以我创建了一个简单的服务:

./services/firebase.serivce.ts

  admin.initializeApp(functions.config().firebase);
  const firestore = admin.firestore();
  export const db = firestore;

然后在我的控制器中

./controllers/test.ts

import { db } from './../services/firebase.service';
...

const collection = db.collection('contacts');
const router = express.Router();

router.post('/', (req, res) => {
...

app.js

 import { TestController } from './controllers/test'
 ...

  app.use('/contact', TestController);
  export const api = functions.https.onRequest(app);

但我得到了错误:

默认 Firebase 应用不存在。确保在使用任何 Firebase 服务之前调用 initializeApp()。

如果我尝试initializeApp()在所有控制器中使用,我会收到一条消息,指出该应用程序已经存在。

我可以做些什么来为多个文件共享同一个实例?

标签: typescriptfirebaseexpressgoogle-cloud-firestoregoogle-cloud-functions

解决方案


推荐阅读