Firestore (веб) добавить простую коллекцию - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь добавить простую коллекцию тестов в свою базу данных firestore.Мой хостинг тоже на firebase.Я сгенерировал данные инициализации в заголовке моего html:

<script defer src="/__/firebase/5.9.3/firebase-auth.js"></script>
<script defer src="/__/firebase/5.9.3/firebase-database.js"></script>
<script defer src="/__/firebase/5.9.3/firebase-firestore.js"></script>
<script defer src="/__/firebase/5.9.3/firebase-messaging.js"></script>
<script defer src="/__/firebase/5.9.3/firebase-storage.js"></script>
<!-- initialize the SDK after all desired features are loaded -->
<script defer src="/__/firebase/init.js"></script>

, где init.js -

if (typeof firebase === 'undefined') throw new Error('hosting/init-error: Firebase SDK not detected. You must include it before /__/firebase/init.js');
firebase.initializeApp({
    "apiKey": "...",
    "databaseURL": "https://intorry3.firebaseio.com",
    "storageBucket": "intorry3.appspot.com",
    "authDomain": "intorry3.firebaseapp.com",
    "messagingSenderId": "1...",
    "projectId": "intorry3"
});

и мой код (в конце тела в моем html)

function waretest() {
  let db = firebase.firestore();

  // Add a new document in collection "cities"
  db.collection("cities").doc("LA").set({
      name: "Los Angeles",
      state: "CA",
      country: "USA"
  })
  .then(function() {
      console.log("Document successfully written!");
      document.getElementById('status').textContent = "collection created";
  })
  .catch(function(error) {
      console.error("Error writing document: ", error);
      document.getElementById('status').textContent = error;
  });
}

function initApp() {
  firebase.auth().onAuthStateChanged(function(user) {
    ...               
  });

  document.getElementById('warehousesBTN').addEventListener('click', waretest, false);
}

window.onload = function() {
  initApp();
};

Это не работает.В чем проблема?Должен ли я объявить что-то еще?

1 Ответ

1 голос
/ 15 апреля 2019

Вы перепутали возможность загрузки Firebase SDK из зарезервированных URL-адресов с конфигурацией через объект конфигурации Firebase.

Попробуйте следующую HTML-страницу (через объект конфигурации Firebase), она должна работать:

<html>

<head>

<!-- Firebase App is always required and must be first -->
<script src="https://www.gstatic.com/firebasejs/5.9.4/firebase-app.js"></script>

<!-- Add additional services that you want to use -->
<script src="https://www.gstatic.com/firebasejs/5.9.4/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.4/firebase-database.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.4/firebase-firestore.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.9.4/firebase-messaging.js"></script>


</head>

<body>

 <button type="button" id="warehousesBTN">Add data to Firestore</button> 
 <div id="status"></div>
 <script>

  var config = {
    "apiKey": "...",
    "databaseURL": "https://intorry3.firebaseio.com",
    "storageBucket": "intorry3.appspot.com",
    "authDomain": "intorry3.firebaseapp.com",
    "projectId": "intorry3"
  };
  firebase.initializeApp(config);


    function waretest() {
      let db = firebase.firestore();
      // Add a new document in collection "cities"
      db.collection("cities").doc("LA").set({
          name: "Los Angeles",
          state: "CA",
          country: "USA"
      })
      .then(function() {
          console.log("Document successfully written!");
          document.getElementById('status').textContent = "document created";
      })
      .catch(function(error) {
          console.error("Error writing document: ", error);
          document.getElementById('status').textContent = error;
      });
      }

     document.getElementById('warehousesBTN').addEventListener('click', waretest);

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