Reputation: 179
I'm trying to write some data to my Firestore database. I've been following Firebase docs but for some reason nothing is being written to my database. I'm not receiving any console errors but there are no new docs being written. I've also tried using setDoc, but no luck with that either.
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.6.8/firebase-app.js";
import { getFirestore, doc, setDoc, addDoc, collection } from "https://www.gstatic.com/firebasejs/9.6.8/firebase-firestore.js";
const firebaseConfig = {
...
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const db = getFirestore();
var submitPost = document.getElementById("submitPost");
submitPost.addEventListener("click", writeToDB, false);
async function writeToDB() {
console.log("HIT ME")
const newDoc = await addDoc(collection(db, 'posts'), {
test: 'TEST',
please: 'WORK',
});
};
Here is my Firestore console after running the function, it does not contain any new documents, only one I have already made manually:
Upvotes: 2
Views: 3262
Reputation: 39
Looks like you need to initialize your Firestore to obtain a reference to the service:
Your existing code:
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const db = getFirestore();
Should be:
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);
For reference: https://firebase.google.com/docs/firestore/quickstart#initialize
Upvotes: 0
Reputation: 2570
when you use async/await syntax instead .then() make sure to put a try/catch around your await to capture any possible error in your Promise.
async function writeToDB() {
console.log("HIT ME")
try {
const newDoc = await addDoc(collection(db, 'posts'), {
test: 'TEST',
please: 'WORK', });
} catch(err) {
console.error("writeToDB failed. reason :", err)
}
};
if you don't enclose it in try/catch any promise fail will be silent. And it would be equivalent of not having .catch() after .then()
Upvotes: 1