问题描述
我在一个函数中得到了一个查询快照.并希望将整个查询快照带到另一个函数(functionTwo).在函数二中,我想在没有 forEach 的情况下获取查询快照中的特定文档.具体的文档可以根据不同的情况进行更改.
I got a querysnapshot in a function.And want to bring the whole querysnapshot to another function (functionTwo).In functionTwo, I want to get a specific document in the querysnapshot WITHOUT forEach. The specific doc can be changed by different case.
ref_serial_setting.get()
.then(querysnapshot => {
return functionTwo(querysnapshot)
})
.catch(err => {
console.log('Error getting documents', err)
})
let functionTwo = (querysnapshot) => {
// getting value
const dataKey_1 = "dataKey_1"
// Tried 1
const value = querysnapshot.doc(dataKey_1).data()
// Tried 2
const value = querysnapshot.document(dataKey_1).data()
// Tried 3 (Put 'data_name': dataKey_1 in that doc)
const value = querysnapshot.where('data_name', '==', dataKey_1).data()
}
结果是所有这些尝试都不是函数.
The result are all these trying are not a function.
如何从查询快照中获取特定的文档数据??
How can I get specific document data from querysnapshot??
或
有什么简单的方法可以将查询快照更改为 JSON?
Is there any easy method to change the querysnapshot to JSON?
推荐答案
您可以使用 QuerySnapshot
的 docs
属性获取文档快照数组.之后,您必须循环获取文档快照的数据以查找您的文档.
You can get an array of the document snapshots by using the docs
property of a QuerySnapshot
. After that you'll have to loop through getting the data of the doc snapshots looking for your doc.
const docSnapshots = querysnapshot.docs;
for (var i in docSnapshots) {
const doc = docSnapshots[i].data();
// Check for your document data here and break when you find it
}
或者如果您实际上不需要完整的QuerySnapshot
,您可以使用where
函数before 在查询对象上调用 get
:
Or if you don't actually need the full QuerySnapshot
, you can apply the filter using the where
function before calling get
on the query object:
const dataKey_1 = "dataKey_1";
const initialQuery = ref_serial_setting;
const filteredQuery = initialQuery.where('data_name', '==', dataKey_1);
filteredQuery.get()
.then(querySnapshot => {
// If your data is unique in that document collection, you should
// get a query snapshot containing only 1 document snapshot here
})
.catch(error => {
// Catch errors
});
这篇关于如何从 Firestore 查询快照中获取特定文档数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!