Как добавить Firestore в свой Javascript-код?

# #javascript #firebase #google-cloud-firestore

Вопрос:

В Javascript я пытался добавить Firestore, используя приведенный ниже код:

 import { initializeApp } from "https://www.gstatic.com/firebasejs/9.0.2/firebase-app.js";
import { getAnalytics } from "https://www.gstatic.com/firebasejs/9.0.2/firebase-analytics.js";
import { getFirestore } from "https://www.gstatic.com/firebasejs/9.0.2/firebase-firestore.js";

const firebaseConfig = {
    apiKey: "XXXXX",
    authDomain: "XXXXX",
    projectId: "XXXXX",
    storageBucket: "XXXXX",
    messagingSenderId: "XXXXX",
    appId: "XXXXX",
    measurementId: "XXXXX"
};

const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
const db =  getFirestore();   

db.collection("users").where("uid", "==", "1234")
.onSnapshot((snapshot) => {
    snapshot.docChanges().forEach((change) => {
        console.log("change ", change.doc.data());
    });
});
 

Однако я получаю следующую ошибку:

Неперехваченная ошибка типа: db.collection не является функцией

Пожалуйста, помогите, спасибо.

Ответ №1:

Вы используете модульную версию, поэтому попробуйте преобразовать onSnapshot в этот синтаксис:

 import { collection, query, where, onSnapshot } from "https://www.gstatic.com/firebasejs/9.0.2/firebase-firestore.js";

const q = query(collection(db, "users"), where("uid", "==", "1234"));
const unsubscribe = onSnapshot(q, (querySnapshot) => {
  const documents = [];
  querySnapshot.forEach((doc) => {
      documents.push(doc.data().name);
  });
});
 

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

1. Спасибо, это сработало. Google нужно улучшить свою документацию!

2. @jennie788 это есть в документации . Убедитесь, что вы включены Modular Tab .

3. Эй, @jennie788, если мой ответ был полезен, вы можете принять его, чтобы другие знали, что это решено.