сервис firestore недоступен

# #javascript #firebase #google-cloud-firestore

Вопрос:

Я пытаюсь подключиться к своему firestore с помощью обычного javascript. (Я хочу войти в курс дела и бежать сейчас)

index.js:

 import app from './firebase.js'
import { getFirestore } from 'https://www.gstatic.com/firebasejs/9.0.0/firebase-firestore.js'
const db = getFirestore(app)
 

Однако это приводит к ошибке: Uncaught Error: Service firestore is not available

firebase.js:

 import { initializeApp } from "https://www.gstatic.com/firebasejs/9.0.1/firebase-app.js";
 
  const firebaseConfig = {
    // configs
  };

  // Initialize Firebase
  let app
  export default app = initializeApp(firebaseConfig);
 

Затем я импортирую скрипт в свой index.html :

 <!DOCTYPE html>
....
<script type="module" src="index.html"></script>
 

Примечание: Я могу читать и писать в firestore с помощью веб-интерфейса firebase.

Комментарии:

1. Вы не можете импортировать модуль с удаленного URL-адреса, поэтому import { something } from 'https://...'; он не будет работать и поэтому выдает ошибку.

2. Не уверен, что это причина, потому firebase.js что загружался нормально.

Ответ №1:

Поэтому, если вы хотите использовать обычный js (без пакетов, таких как webpack), вам нужно будет поместить свой код JS в script тег следующим образом:

 <script type="module">
  import { initializeApp } from "https://www.gstatic.com/firebasejs/9.0.1/firebase-app.js";
  
  const firebaseConfig = { ... };
  const app = initializeApp(firebaseConfig);
</script>
 

В противном случае, если вы хотите использовать его так, как намеревались, вам потребуется:

  • установите пакет firebase
  • пакет модулей (например, webpack) для объединения файлов для вас

Комментарии:

1. Проверьте мой обновленный вопрос, который я уже добавляю type="module"

2. <script type="module" src="index.js"></script> нет src="index.html" , но я думаю, что у вас это уже есть, так как firestore работает нормально?

3. Я столкнулся с той же проблемой. Я просто понизил рейтинг для тестирования, и это сработало. В этом файле js: импортируйте { initializeApp } из ‘ gstatic.com/firebasejs/9.0.0/firebase-app.js ‘; импорт { getFirestore, коллекция, getDocs, GetDoc, DocumentSnapshot, запрос, где, ограничение} из ‘ gstatic.com/firebasejs/9.0.0/firebase-firestore.js ‘;

4. Действительно? 9.0.0 решает проблему? У меня нет пропускной способности, чтобы вернуться к нему, так как я перенес свой проект в webpack, спасибо.

Ответ №2:

Используя npm, но получил то же сообщение об ошибке. Перезапустил терминал, удалил и переустановил firebase, затем сработал…не уверен, какой из них это сделал.