所以这是可能的:
const docSnapshot = await firebase.firestore().collection("SOME_COL").doc("SOME_DOC").get();
console.log(docSnapshot.exists);
但是它“下载”整个文档只是为了检查它是否存在。而且我目前正在处理一些较重的文档,并且有一个脚本,我只需要知道它们是否存在,但是那时不需要下载它们。
有没有一种方法可以检查没有.get()
的文档是否存在并避免下载文档数据?
答案 0 :(得分:3)
似乎您正在使用JavaScript SDK。使用此SDK,无法仅获取文档字段的子集。
一种可能的解决方案是使用ID与主要集合文档相同的ID维护文档,但仅保留一个非常小的伪字段。您可以使用一组Cloud Functions来同步两个集合(文档创建/删除)。
另一方面,使用Firestore REST API,可以使用get
方法来定义DocumentMask
,它定义了“文档上的字段路径集”,并且是“用于将对文档的获取操作限制为其字段的子集”。根据您的确切用例,这可能是一个有趣且简单的解决方案。