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

Firestore:如何判断数组是否包含指定DocumentReference

检查DocumentReference数组是否包含指定引用的解决方案

直接用includes()检查Firebase的DocumentReference数组会失效,因为DocumentReference是对象类型,includes()比较的是对象的内存引用——哪怕两个引用指向同一个Firestore文档,只要是不同实例,结果就会是false。

解决方法可以换成比较文档的路径字符串,这是最可靠的方式:

const likedWorkouts = user.collection('additional').doc('liked');
const snapshot = await likedWorkouts.get();
const exists = snapshot.exists;
// 用some()遍历数组,比较每个引用的path与目标引用的path是否一致
hasLiked = snapshot.data()?.liked?.some(ref => ref.path === workout.path);

补充说明

  • some()方法会遍历数组,只要找到一个符合条件的元素就返回true,性能和includes()接近
  • 也可以比较文档ID结合父集合路径,但直接用ref.path更简洁,因为路径本身就唯一标识了Firestore中的文档位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:18:27