我有Express应用程序的Firebase功能,我想在多个控制器上使用Firestore实例。所以我创建了一个简单的服务:
./服务/ firebase.serivce.ts
admin.initializeApp(functions.config().firebase);
const firestore = admin.firestore();
export const db = firestore;
然后在我的控制器中
./控制器/ 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()
,我会收到一条消息,说该应用已存在。
如何为多个文件共享同一个实例?