Dada la siguiente estructura de datos en firebase, deseo recuperar el campo solo en JS estándar. He intentado muchos métodos para conseguirlo, pero por alguna razón no puedo. Intenté .get(), forEach(), intenté obtener una tienda instantánea, pero no funcionó. Al comienzo de mi archivo JS hago:
const auth = firebase.auth(); const db = firebase.firestore(); let totalGroups; db.collection('totalGroups').doc('totalGroups').get().then(function(querySnapshot) { querySnapshot.docs.forEach(function(doc) { if (doc.data().totalGroups != null) { totalGroups = doc.data().totalGroups console.log("here is total groups" + totalGroups) //Total Groups is undefined out here but defined in fuction } }) })y normalmente puedo obtener .get() muy bien. Estoy buscando el método más simple para obtener este valor. Gracias.
Primero, está utilizando get() en una DocumentReference que devuelve una DocumentSnapshot que contiene datos de ese único documento únicamente y no tiene la propiedad docs . Intente refactorizar el código como se muestra a continuación:
db.collection('totalGroups').doc('totalGroups').get().then(function(snapshot) { const docData = snapshot.data(); console.log(docData) }) También tenga en cuenta que si estuviera usando get() en una CollectionReference , habría devuelto una QuerySnapshot donde el código existente funciona bien.