Javascript 在Cloud Firestore中查找具有特定引用的所有文档

Javascript 在Cloud Firestore中查找具有特定引用的所有文档,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,在Cloud Firestore上,我通过以下方式获得与其他文档相关的文档: 在我的示例中,document集合A/WJQ9yx67RrqHWQoEp0e2指的是document集合B/rfoewd5go4dbitocxyc,但当然,可能有无限多个文档指的是所提到的文档 现在,我想找出Collection A的所有文档,它们都引用了这个非常具体的文档Collection B/rfoeww5go4dbitocxyc 这怎么可能?我如何才能做到这一点? Firebase的文档对此有点不清楚。你是对

在Cloud Firestore上,我通过以下方式获得与其他文档相关的文档:

在我的示例中,document
集合A/WJQ9yx67RrqHWQoEp0e2
指的是document
集合B/rfoewd5go4dbitocxyc
,但当然,可能有无限多个文档指的是所提到的文档

现在,我想找出
Collection A
的所有文档,它们都引用了这个非常具体的文档
Collection B/rfoeww5go4dbitocxyc

这怎么可能?我如何才能做到这一点?


Firebase的文档对此有点不清楚。

你是对的,不幸的是,文档中没有实际使用
引用
数据类型的示例,事实上,文档中只提到了它

不过,最终,
引用
可以像Firestore中可用的任何其他数据类型一样使用,因此也可以用于筛选和排序数据

为了实现您所追求的目标,您需要构造一个
引用
,指向
集合B
中的文档,然后使用
where
子句过滤
集合a
引用
值上的数据。例如,在JavaScript中:

// Create a reference to the specific document you want to search with
var reference = db.collection("Collection B").doc("rFOEwdw5go4dbitOCXyC");

// Construct a query that filters documents matching the reference
var query = db.collection("Collection A").where("reference", "==", reference);
查看,比较
引用
(扩展
查询
)只需检查路径是否匹配即可:

这似乎很像对这两个字符串调用
toString()
,并比较字符串值


昨天我制作了一个测试,它引导我测试存储
引用的可能用途,因此这可能也适用于这里。

您使用哪种语言?我个人在Web上使用JavaScript。但我认为这个问题一般涵盖了Firebase支持的所有语言。非常感谢,我刚刚开始工作!毕竟,解决方案比我想象的要简单:)
  isEqual(other: Query): boolean {
    // [...]
    const sameRepo = this.repo === other.repo;
    const samePath = this.path.equals(other.path);
    const sameQueryIdentifier =
      this.queryIdentifier() === other.queryIdentifier();

    return sameRepo && samePath && sameQueryIdentifier;
  }