Firebase部署的数据提取问题

时间:2020-03-28 09:43:04

标签: node.js firebase firebase-realtime-database

我已将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>

0 个答案:

没有答案