我已将Firebase实时数据库用于我的项目。当我运行firebase serve
时,整个代码和站点都成功运行,但是当我运行firebase deploy
并在firebase上部署站点时,现在它不再从firebase RTDB中获取数据。
但是set()函数可以正常工作。虽然on()和Once()都不适用于firebase deploy
,但它们都适用于firebase serve
。
这是“ adminlogin”页面的代码。
为此,我使用了node.js和hbs视图引擎。
index.js文件
const functions = require('firebase-functions');
const express = require('express');
const hbs = require('hbs');
const bodyParser = require('body-parser');
const session = require('express-session');
const firebase = require('firebase');
// const firebase = require('firebase-admin');
//express
const app = express();
//hbs
app.set('views','./views')
app.set('view engine','hbs');
//body-parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.set('trust proxy', 1); // trust first proxy
app.use(session({
secret: 'Student Information',
// resave: false,
// saveUninitialized: true,
// cookie: { secure: true }
}));
// app.use(express.static(__dirname + '/public'));
var firebaseConfig = {
};
firebase.initializeApp(firebaseConfig);
//firestore variable defining
var database = firebase.database();
app.get('/adminlogin',(req,res) => {
res.render('adminlogin');
});
app.post('/adminlogin',(req,res) => {
var Email = req.body.email;
var Pass = req.body.pass;
console.log(Email);
console.log(Pass);
database.ref('/Admin/').once('value').then(function(doc) {
var name = doc.val().Name;
var email = doc.val().Email;
var password = doc.val().Password;
console.log(name);
console.log(email);
console.log(password);
if(email === Email && password === Pass)
{
req.session.user = "Admin";
req.session.adminname = name;
res.redirect('/adminoption');
return (console.log("Done"));
}
else {
res.redirect('/wrongpassword');
return (console.log("Error"));
}
}).catch(console.log("Error"));
});
adminlogin.hbs文件
<html>
<head>
<meta charset="UTF-8">
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=0.7">
<!-- Firebase SDK Files Addition in every HTML Formate files-->
<script src="https://www.gstatic.com/firebasejs/7.11.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.11.0/firebase-database.js"></script>
</head>
<body align="center">
<div class="login">
<div class="BVM">
<h2>Admin Login</h2>
<form action="/adminlogin" method="POST">
<p>Email</p>
<input type="email" name="email" placeholder="Enter Username">
<p>Password</p>
<input type="password" name="pass" placeholder="Enter Password"><br><br>
<input type="submit" name="submit" value="Login">
</form>
</div>
</body>
</html>