# #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, если мой ответ был полезен, вы можете принять его, чтобы другие знали, что это решено.