问题描述
我正在尝试连接Firebase数据,以类似于data.json文件的方式进行表达-我这样做是否正确?
我收到“警告,缺少FIREBASE_CONfig和GCLOUD_PROJECT环境变量。初始化firebase-admin将失败”错误,我不确定如何解决-我还发现了一篇似乎可以访问Firebase的文章全部在前端,所以也许我不需要使用express?
const express = require('express');
const app = express();
const port = process.env.PORT || process.argv[2] || 8080
const bodyParser = require('body-parser');
// const data = require('./data.json');
const cors = require('cors');
const firebase = require('firebase-functions');
const admin = require('firebase-admin');
const config = require('./config');
const db = firebase.initializeApp(config);
const serviceAccount = require('./serviceAccount.json');
require('dotenv').config();
app.use(cors());
app.use(bodyparser.urlencoded({extended: true}));
app.options('*',cors());
app.use(bodyParser.json());
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),databaseURL: 'https://wheresthespot-f83b8.firebaseio.com'
});
app.get('/locations',(req,res) => {
res.send(db)
})
app.get('/location/:name',res) => {
res.send(b)
})
app.post('location',res) => {
const { id,location,description,morningLight,eveningLight,address,city,region,longitude,latitude,categories,permit } = req.body
const newLocation = {
id,permit
}
res.json([
db.locations,newLocation
])
db.locations.push(newLocations);
})
app.listen(port,() => console.log(`We're live on port,${port}`))
module.exports.db = db.database();```
解决方法
为了有效地使用Firebase Admin SDK,您应该以instructions开始。特别是,您将需要弄清楚自己如何initialize the SDK。如果您正在运行自己的节点服务器,则需要提供Firebase项目的凭据,如该文档所示。
由于我们不知道'./config'中的内容,因此我们无法确切看到您正在做什么。该文档建议将环境变量“ GOOGLE_APPLICATION_CREDENTIALS”设置为指向具有您的服务帐户凭据的文件。您将无法将配置用于Web或移动应用程序-必须使用服务帐户。