Esta es mi clase de controlador. donde quiero convertir datos a mi objeto personalizado
getRegister(node:string) { this.db.firestore.collection('databasetable') .where('profileId','==', node) .get() .then(querySnapshot => { querySnapshot.forEach(function (doc) { console.log(doc.id); // id of doc console.log(doc.data()); // data of doc //Want to cast my object here for displaying into UI }) }); }El método data() siempre devuelve un objeto JSON. Creo que está buscando los métodos withConverter (relativamente recientes) y la clase FirestoreDataConverter :
await firebase.firestore() .collection('posts') .withConverter(postConverter) // 👈 this is a custom class that performs the conversion .doc().get(); El postConverter anterior es un objeto que tiene los métodos toFirestore y fromFirestore para convertir el JSON de/a la clase personalizada, por ejemplo:
const postConverter = { toFirestore(post: Post): firebase.firestore.DocumentData { return {title: post.title, author: post.author}; }, fromFirestore( snapshot: firebase.firestore.QueryDocumentSnapshot, options: firebase.firestore.SnapshotOptions ): Post { const data = snapshot.data(options)!; return new Post(data.title, data.author); } }; Consulte también la documentación del método DocumentReference.withConverter y la clase FirestoreDataConverter , de donde obtuve los ejemplos de código anteriores.