本文介绍了如何从 firestore 查询快照中获取特定的文档数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在函数中有一个查询快照.并希望将整个查询快照带到另一个函数(functionTwo).在functionTwo 中,我想在不使用forEach 的情况下在querysnapshot 中获取特定文档.具体的doc可以根据大小写更改.

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?

推荐答案

您可以使用 QuerySnapshotdocs 属性获取文档快照的数组.之后,您必须循环获取文档快照的数据以查找您的文档.

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 查询快照中获取特定的文档数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-21 20:36