在没有get()完整文档数据的情况下检查Firestore上是否存在文档

时间:2020-05-27 09:28:50

标签: firebase google-cloud-firestore

所以这是可能的:

const docSnapshot = await firebase.firestore().collection("SOME_COL").doc("SOME_DOC").get();
console.log(docSnapshot.exists);

但是它“下载”整个文档只是为了检查它是否存在。而且我目前正在处理一些较重的文档,并且有一个脚本,我只需要知道它们是否存在,但是那时不需要下载它们。

有没有一种方法可以检查没有.get()的文档是否存在并避免下载文档数据?

1 个答案:

答案 0 :(得分:3)

似乎您正在使用JavaScript SDK。使用此SDK,无法仅获取文档字段的子集。

一种可能的解决方案是使用ID与主要集合文档相同的ID维护文档,但仅保留一个非常小的伪字段。您可以使用一组Cloud Functions来同步两个集合(文档创建/删除)。


另一方面,使用Firestore REST API,可以使用get方法来定义DocumentMask,它定义了“文档上的字段路径集”,并且是“用于将对文档的获取操作限制为其字段的子集”。根据您的确切用例,这可能是一个有趣且简单的解决方案。