【问题标题】:How do I use the same firebase database in multiple HTML pages?如何在多个 HTML 页面中使用相同的 firebase 数据库?
【发布时间】:2019-05-07 22:43:13
【问题描述】:

我正在创建一个具有仪表板的应用程序,此仪表板链接到不同的 HTML 页面,这些页面执行需要更新我的 firebase 数据库的不同内容,使用单页应用程序我可以毫无问题地做到这一点,当我尝试用多个页面来做

当我尝试从 dashboard_2.html 连接到数据库时,如果我从 js 文件中删除配置部分,并且只是让修改部分说没有创建任何firebase应用程序。

index.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();

dashboard_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 数据库,但我不能这样做,有什么办法可以吗?

【问题讨论】:

    标签: javascript html firebase firebase-realtime-database


    【解决方案1】:

    您需要阻止您的应用再次初始化。

    firebase.initializeApp(firebaseConfig); 更改为

    if (!firebase.apps.length) {
        firebase.initializeApp(config);
    }
    

    【讨论】:

    • 你让我头疼不已!
    【解决方案2】:

    我认为是正常的,Firebase 会保持用户的连接,直到他/她注销。你可以做什么连接,然后将数据传递到其他页面。 您可以使用本地存储来保存一些您可能在页面之间传递的基本信息。

    阅读下文。

    https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 2022-01-26
      • 2011-04-21
      相关资源
      最近更新 更多