Как использовать одну и ту же базу данных Firebase на нескольких HTML-страницах? - PullRequest
0 голосов
/ 08 мая 2019

Я создаю приложение, имеющее панель мониторинга, эта панель ссылок на разные HTML-страницы, которые выполняют разные действия, требующие обновления моей базы данных Firebase, с помощью одностраничного приложения, я могу сделать это без проблем, проблема возникает, когда я пытаюсьсделать это с несколькими страницами

Когда я пытаюсь подключиться к базе данных из dashboard_2.html, он говорит, что приложение уже существует (потому что я уже вызвал его из index.html из database.js), если я удаляючасть конфигурации из 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 на обеих страницах, но я не могу сделать это таким образом, есть ли способ, которым я могу?

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Необходимо запретить повторную инициализацию приложения.

Измените firebase.initializeApp(firebaseConfig); на

if (!firebase.apps.length) {
    firebase.initializeApp(config);
}
0 голосов
/ 08 мая 2019

Я думаю, что это нормально, Firebase поддерживает связь с пользователем, пока он не выйдет из системы. что вы можете сделать, это подключиться, а затем передать данные на другие страницы. вы можете использовать локальное хранилище для хранения некоторой базовой информации, которую вы можете передавать между страницами.

Подробнее читайте ниже.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...