gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 04:31:47 26 4
gpt4 key购买 nike

在 Cloud Firestore 上,我以这种方式引用了另一个文档:

Reference from collection A to B

在我的示例中,文档 Collection A/WJQ9yx67RrqHWQoEp0e2 指的是文档 Collection B/rFOEwdw5go4dbitOCXyC,但是当然,可能有无限个文档引用其中提到的一个。

现在我想找出 Collection A 的所有文档,它们指的是这个非常具体的文档 Collection B/rFOEwdw5go4dbitOCXyC

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

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

最佳答案

你是对的,不幸的是,文档中没有实际使用Reference 数据类型的例子,事实上唯一提到的是在Supported Data Types section 中。 .

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

要实现您的目标,您需要构造一个指向Collection B 中文档的Reference,然后使用where 子句过滤Collection Areference 值的数据。例如在 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);

查看 source for isEqual() in the Firebase JavaScript SDK , Reference(扩展 Query)的比较是通过简单地检查路径是否匹配来执行的:

  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;
}

这看起来很像对两者调用 toString() 并比较字符串值。

我制作了一个similar example昨天,这让我测试了存储 Reference 的可能用途,因此这也适用于此。

关于javascript - 在 Cloud Firestore 中查找具有特定引用的所有文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46934113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com