首页 > 解决方案 > 如何打破 Firestore 上的 querySnapshot?

问题描述

我需要打破 querysnapshot 循环。是否可以?

我尝试使用 for 循环。但下面的错误来了。

如何修复此错误或有什么方法可以打破快照循环?

代码

  return query.get()
    .then((snapshot) => {
      for(const doc of snapshot) {
        let data = doc.data()
        if (data.age == 16) {
            break;
        }
  }

错误

类型“QuerySnapshot”必须有一个返回迭代器的“Symbol.iterator”方法。

标签: typescriptfirebasegoogle-cloud-firestore

解决方案


您可以使用docsQuerySnapshot 的属性,它返回 QuerySnapshot 中所有文档的数组。

例如,使用 for 循环:

  return query.get()
    .then((snapshot) => {
      const snapshotsArray = snapshot.docs;
      for (var i = 0; i < snapshotsArray.length; i++) {
        const data = snapshotsArray[i].data()
        if (data.age == 16) {
            break;
        }
      }
  }

或带有for-of

  return query.get()
    .then((snapshot) => {
      const snapshotsArray = snapshot.docs;
      for (const snap of snapshotsArray) {
        const data = snap.data()
        if (data.age == 16) {
            break;
        }
      }
  }

推荐阅读