javascript - 如何在多个 HTML 页面中使用相同的 firebase 数据库?
问题描述
我正在创建一个具有仪表板的应用程序,此仪表板链接到不同的 HTML 页面,这些页面执行需要更新我的 firebase 数据库的不同内容,使用单页应用程序我可以毫无问题地做到这一点,当我尝试这样做时会出现问题多页
当我尝试从 dashboard_2.html 连接到数据库时,如果我从 js 文件中删除配置部分并让修改它说没有创建任何firebase应用程序。
索引.html
<script src="https://www.gstatic.com/firebasejs/ui/3.6.1/firebase-ui-auth__es.js"></script>
<link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/3.6.1/firebase-ui-auth.css" />
<!-- The core Firebase JS SDK is always required and must be listed first -->
<!-- Add additional services that you want to use -->
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-database.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-firestore.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-messaging.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-functions.js"></script>
<!-- Firebase -->
<script src="js/database.js"></script>
</head>
<body>
<div id="wrapper">
<nav class="navbar-default navbar-static-side" role="navigation">
<div class="sidebar-collapse">
<ul class="nav metismenu" id="side-menu">
<!-- User admining -->
<li><a href="dashboard_2.html">users</a></li>
</ul>
</div>
</div>
database.js,我在其中连接到 firebase
var firebaseConfig = {
apiKey: "AIzaSyBWVRTc7stMysJVw4rjvzzn5-FnvMAE8_8",
authDomain: "proveneet.firebaseapp.com",
databaseURL: "https://proveneet.firebaseio.com",
projectId: "proveneet",
storageBucket: "proveneet.appspot.com",
messagingSenderId: "37090380224",
appId: "1:37090380224:web:a9e4c49d1e4b80bf"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
var database = firebase.database();
仪表板_2.html
<!--===============================================================================================-->
<script src="https://www.gstatic.com/firebasejs/ui/3.6.1/firebase-ui-auth__es.js"></script>
<link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/3.6.1/firebase-ui-auth.css" />
<!-- The core Firebase JS SDK is always required and must be listed first -->
<!-- Add additional services that you want to use -->
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-database.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-firestore.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-messaging.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.1/firebase-functions.js"></script>
<!-- Firebase -->
<script src="js/manageusers.js"></script>
</head>
<body>
<div id="wrapper">
<nav class="navbar-default navbar-static-side" role="navigation">
<div class="sidebar-collapse">
<ul class="nav metismenu" id="side-menu">
<li class="active"><a href="dashboard_2.html">users</a></li>
</ul>
</div>
</div>
<button class="btn btn-primary btn-lg float-right" type="submit" id="addusr">Next</button>
manageusers.js,这是我想向数据库添加信息的地方
var connect = database.ref("/users");
如果我将 database.js 中的内容复制到 manageusers.js 并添加 var connect = database.ref("/users"); 它告诉我应用程序已经存在,如果我不这样做,它会告诉我没有创建任何 firebase 应用程序,我想在两个页面中使用相同的 firebase 数据库,但我不能这样做,有什么办法可以吗?
解决方案
您需要防止您的应用再次初始化。
更改firebase.initializeApp(firebaseConfig);
为
if (!firebase.apps.length) {
firebase.initializeApp(config);
}
推荐阅读
- google-cloud-functions - 尝试运行 Google Cloud Scheduler 任务时出现 PERMISSION_DENIED 错误
- bash - bash 脚本无法在 while 循环中删除 s3 对象
- amazon-web-services - AWS EMR sts 承担临时集群的角色调用
- multithreading - 为什么在尝试使用锁定例程时会出现分段错误?
- android - 如何在不使用解码器的情况下将视频帧直接馈送到编码器表面?
- python - Pandas - 在 group_by 之后将自定义函数应用于两列 - 重新制定
- csv - pentaho 将 2 列从不同的 csv 中分开
- javascript - Gulp watch 什么都不做
- javascript - 如果有人向他发送 PM,如何向我的 Discord Bot 设置标准消息?
- spring-boot - spring rabbitmq 防止OOM