You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firestore Snapshot问题:getAll返回的文档是否需要检查exists属性?

结论

调用 firestore.getAll() 时,返回的结果数组中完全可能包含exists属性为false的文档快照,你给出的遍历打印代码是会出现输出false的情况的。

具体规则说明

  • getAll() 的返回结果和你传入的文档引用数组是严格按顺序一一对应的,你传入多少个DocumentReference实例,就会返回多少个DocumentSnapshot实例,不会自动过滤掉不存在的文档。
  • 如果某一个引用对应的文档在Firestore中不存在,对应的快照的exists属性就会为false,此时调用快照的data()方法会返回undefined。

设计逻辑

这种设计反而更符合实际开发需求:你可以直接按传入引用的顺序匹配结果,不需要额外做差集计算就能快速定位到哪些引用对应的文档不存在。如果方法自动过滤掉不存在的文档,你反而要额外处理才能知道哪份数据丢失了。

常见处理方式

如果你只需要保留存在的文档,直接过滤即可:

const existedDocs = docs.filter(doc => doc.exists);

内容的提问来源于stack exchange,提问作者Raul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:57:03