[英]How to query for a single field in firestore 9
我正在尝试查询文档中的数据。 我发现了如何使用流动逻辑进行查询
const docRefCol = doc(db, 'UsersCollection', uid);
interface objectData {
field1Obj: { [key: string]: any };
field2Arr: [];
}
let obj: objectData = { field1Obj: {}, field2Arr: [] };
await getDoc(docRefCol).then((docSnap) => {
Object.assign(obj, docSnap.data());
});
console.log(obj)
这个问题是我想要一种不可变的方式来提取数据。 加上另一种查询单个字段的方法(假设field1Obj
),而不是调用整个文档。
没有任何方法可以获取一些字段(至少在客户端 SDK 中没有)。 但是您可以销毁 object 并获取所需的字段(或者在查询多个对象时进行过滤)。
let obj: objectData = { field1Obj: {}, field2Arr: [] };
await getDoc(docRefCol).then((docSnap) => {
const { field1Object, field2Arr, ...rest } = docSnap.data()
obj = { field1Object, field2Arr }
});
在 QuerySnapshot 的情况下,它可能是这样的:
await getDocs(query).then((querySnap) => {
const docs = querySnap.docs.map((doc) => {
const { field1Object, field2Arr, ...rest } = doc.data()
return { field1Object, field2Arr }
})
});
它肯定不会减少从数据库中获取的数据量,但选择字段目前仅受管理/服务器端 SDK 支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.