Google Cloud Firestore文档限制

时间:2018-05-16 03:31:06

标签: firebase google-cloud-firestore angularfire2

我一直在与Google Cloud Firestore合作。我即将13000+导入CSV 记录到firestore后端。我会将此集合用于查找自动完成目的。

我很好奇并担心这是不是一个好主意。此外,我正在寻找一些建议,我应该使用哪些技术来尽可能高效地检索这些数据。我正在使用Angular 5并使用AngularFire2与Firestore建立联系。

文档本身很小,例如:

{
  address: {
    state: "NSW"
    street: "19 XYZ Road"
    suburb: "Darling Point"
  },
  user: {
    name: "ABC",
    company: "Property Management Company"
  }
  file_no: "AB996"
}

大多数搜索都基于文档的file_no属性。

更新

我刚刚将所有13k +记录导入Firestore。这真的很有效率。但是,我有一个问题。导入记录后,我在Firestore控制台上收到消息,表明我的读取操作的每日限制(0.05百万行动0.05)。我只是编写数据并在数据表中显示这些记录。我使用了以下查询:

this.propertyService
      .getSnapshotChanges()
      .subscribe(properties => {
        this.properties = properties;
        this.loadingIndicator = false;
      });


getSnapshotChanges(): Observable < any > {
  return this.afs.collection(this.propertiesCollection).snapshotChanges()
    .map((actions) => {
      return actions.map((snapshot) => {
        const data = snapshot.payload.doc.data();
        data.id = snapshot.payload.doc.id;
        return data;
      });
    });
}

这如何使我的阅读限制超过?

1 个答案:

答案 0 :(得分:1)

使用Cloud Firestore时,集合中的文档数量无关紧要。这实际上是其更大的好处之一:无论集合中有多少文档,查询都将花费相同的时间。

假设您添加了130个文档和(为了示例),需要1秒钟才能获得10个文档。无论集合中有多少文档,这都是您获得的性能。所以1300张文件也需要1秒,13K需要1秒,而13M则需要1秒。

更多开发人员遇到的问题是使他们的用例适合Firestore的API。例如:搜索字符串的唯一方法是使用所谓的前缀匹配,不支持全文搜索。这意味着您可以搜索Prop*并找到Property Management Company,但不能搜索*Man*来查找它。