Firestore onSnapshot - firebase.firestore не является функцией - не удалось разрешить спецификатор модуля "firebase" - PullRequest
0 голосов
/ 08 мая 2020

Я просто пытаюсь изучить firebase, и я хотел использовать onSnapshot, поэтому переключился с «базы данных реального времени» на «firestore». После переключения я скопировал этот шаблонный код:

document.addEventListener("DOMContentLoaded", evt=> {
  const app = firebase.app();
  const db = firebase.firestore();

  db.collection('users')
    .onSnapshot((snapshot) => {
      console.log(`Received doc snapshot: ${snapshot}`);
    }, (error) => {
      console.log(`Encountered error: ${error}`);
    });

});

Однако я понял, что «firebase.firestore не является функцией». Я нашел решение здесь: { ссылка }, которое просто добавляет:

import * as firebase from 'firebase';
import 'firebase/firestore';

Однако затем я получаю: «Uncaught TypeError: Не удалось разрешить спецификатор модуля« firebase ». Относительные ссылки должен начинаться с "/", "./" или "../"."

РЕДАКТИРОВАТЬ: Также стоит отметить, что я добавил <script defer src="/__/firebase/7.14.2/firebase-firestore.js"></script> в свой HTML файл, и ошибка сохраняется. .

Ответы [ 2 ]

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

По какой-то причине мне пришлось использовать полный URL-адрес и держать их в верхней части тега <BODY>, например:

<body>
  <script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-auth.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-database.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-messaging.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.2/firebase-storage.js"></script>

  <script src="app.js"></script>
</body>

Также мне пришлось переустановить все требуемые вещи с помощью Firebase CLI. После этого он работал отлично.

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

Удаление:

import * as firebase from 'firebase';
import 'firebase/firestore';

Из сообщения stackoverflow, которое я нашел, сохранение ссылки на firestore, похоже, помогло.

...