'Is there some way to get a specific field from one get request with Firestore(Firebase)? [duplicate]
So here is the request to get some data from Firestore with vanilla JS.
const q = query(collection(db, "tasks"), where("userId", "==", "Milos"), where("archive", "==", "false"));
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
// doc.data() is never undefined for query doc snapshots
console.log(doc.id, " => ", doc.data());
});```
With this request, I get a from collection tasks where userId equals "specificname", and where the archive field is equal to false. So with this request, I will get full tasks, is there some way with Firestore to get only a specific field or fields, not a full task with all fields? Is something even possible with Firestore or do I need to parse this object on the front side?
Solution 1:[1]
No, you cannot retrieve partial responses from Firestore on the client. Every request will always return all documents to the client. This also means you cannot protect certain fields in a document.
Server-side you could try using Query.select.
let collectionRef = firestore.collection('col');
let documentRef = collectionRef.doc('doc');
return documentRef.set({x:10, y:5}).then(() => {
return collectionRef.where('x', '>', 5).select('y').get();
}).then((res) => {
console.log(`y is ${res.docs[0].get('y')}.`);
});
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
