node.js - 用于firebase初始化功能的节点js模块导出
问题描述
我试图在我的节点 js 项目中使用 firebase-admin。以下是我的主页的代码:
const functions = require('firebase-functions');
const express = require('express');
const ejs = require('ejs');
var firebase = require('firebase-admin');
const app = express();
// const firebaseApp = firebase.initializeApp(
// functions.config().firebase
// );
app.set('view engine', 'ejs');
app.set('views', './views');
app.use('/', require('./routes/index'));
app.use('/getPosts', require('./routes/posts'));
app.use('/tests', require('./routes/tests'));
exports.app = functions.https.onRequest(app);
exports.firebaseApp = function(){
return firebase.initializeApp(
functions.config().firebase
);
}
文件的代码 - ./routes/tests如下:
const functions = require('firebase-functions');
var express = require('express');
var router = express.Router();
var firebase = require('firebase-admin');
//
// const firebaseApp = firebase.initializeApp(
// functions.config().firebase
// );
const firebaseApp = require('../index.js').firebaseApp;
function getPosts(){
const ref = firebaseApp.database().ref('users');
return ref.once('value').then(snap => snap.val());
}
router.get('/', (req, res, next) => {
getPosts().then(posts => {
res.json(posts);
});
});
module.exports = router;
问题是,当我访问时http://localhost:5000/getPosts
,它显示TypeError: Cannot read property 'database' of undefined。这里的首要问题是什么?添加
firebase.initializeApp(
functions.config().firebase
);
在每个布局页面中,这不是一个好主意,因为它会多次初始化 firebase。我该如何解决这个问题?
解决方案
推荐阅读
- jquery - 如果数据库中存在记录,则执行条件
- python-3.x - 为什么总是“模块'xxx'没有属性'xxx'”?
- bash - 如何在 bash 中并行执行脚本?
- node.js - 在 Windows 上的 package.json 脚本中使用 NODE_PATH 变量
- devise - 将 devise-jwt 添加到 rails api -> 如何在为 JWTBlacklist 生成模型时解决问题?
- algorithm - 生成随机数但排除多个范围而不循环
- javascript - 烧瓶是否支持通过 GET REQUEST 传递的 JSON 编码参数(在正文中)
- c# - c#为Outlook生成ics文件
- selenium-webdriver - 当除innerText之外的所有元素都相同时如何单击按钮
- javascript - 如果您拥有相同字符串的解密和加密版本,您能否反向生成 RSA/AES 密钥?(JS 客户端加密)