如何使用 Firebase Firestore 获取子集合?

Ane*_*ail 8 javascript firebase react-native google-cloud-firestore

我想通过文档获取所有集合,我不知道该怎么做我是 firestore 的新手。

Firebase.firestore()
      .collection("reservations")
      .doc(tripUid)
      .get()
      .then(doc => {
        console.log(doc.doc.data());
      }).catch(error => {
        console.log("Error getting document:", error);
      });
Run Code Online (Sandbox Code Playgroud)

我的 Firebase Firestore 数据

Cur*_*rge 13

所以子集合仍然遵循 Firestore 的整个路径思想。举个例子,假设您有一个名为“Orders”的集合和一个名为“Products”的子集合。要获取特定订单的所有产品文档,您可以编写类似以下内容的内容Firebase.firestore().collection("Orders/orderid123/Products").get(),其中 orderid123 是您想要产品的订单的 ID。

查看您的数据模型,您实际上已将子集合命名为似乎是生成的 ID。因此,在上面的示例中,您将使用 'ymuIjdv...' 而不是使用“Products”。您可能需要重新审视如何命名这个子集合,以赋予它一个更易读的名称。看起来您正在为子集合文档生成 ID 并将其用作子集合的名称。

在您的确切设置中,您可以通过执行Firebase.firestore().collection("reservations/" + tripUid + "/ymuIjdvwWnOr20XWVp6gwRKtmgD2").get(). 这将获取保留项下的所有子集合文档,并在tripUid 变量内和集合“ymuIjdvwWnOr20XWVp6gwRKtmgD2”内保存。

  • 你好呀。有了新版本的 Firebase,情况会怎样? (4认同)

Arp*_*lla 6

这是 Firebase Admin SDK 的实现

希望这会有所帮助

firestore()
    .collection("reservations")
    .doc(tripUid)
    .listCollections()
    .then((subCollections) => {
        subCollections.forEach((subCollection) => {
            subCollection
                .get()
                .then((array) => {
                    array.docs.forEach((doc) => {
                        console.log(doc.data());
                    });
                });
        });
    });
Run Code Online (Sandbox Code Playgroud)