Skip to content
Advertisement

Firestore: Unable to read document data (Uncaught TypeError: docSnap.exists is not a function at HTMLFormElement)

I am a new developer with no experience in Web apps. I have a collection called “users” in Firestore in which the document IDs are the user’s emails. I am trying to read the data in one of the documents following the example provided by Firebase here

I get two errors:

  • First one is the use of “await”: Uncaught SyntaxError: Unexpected reserved word.
  • Second is this message: Uncaught TypeError: docSnap.exists is not a function at HTMLFormElement.

I bypassed the first one by ommiting “await”, but cannot avoid the second. Have you got any idea of what is wrong with my code?

console.log(docSnap) gives the following message: “Promise {pending}”

Thanks.

requestForm.addEventListener('submit', (event) => {
event.preventDefault();

const user = auth.currentUser;
const docSnap = await getDoc(doc(db, "users", user.email));

    if (docSnap.exists()) {
        console.log("Document data:", docSnap.data());
        } else {
        console.log("No such document!");
    }
})

Advertisement

Answer

Looks like you return a Promise and it does not meet the requirements of async/await. Try this way.

getDoc(doc(db, "users", user.email)).then(docSnap => {
  if (docSnap.exists()) {
    console.log("Document data:", docSnap.data());
  } else {
    console.log("No such document!");
  }
})
Advertisement