如何仅获取文档 ID [Firebase-Flutter]

Posted

技术标签:

【中文标题】如何仅获取文档 ID [Firebase-Flutter]【英文标题】:How to fetch only documentIDs [Firebase-Flutter] 【发布时间】:2020-11-02 23:56:03 【问题描述】:

在我的 firebase 的数据库中,我有用户,每个用户都有多个他订购的商店,每个商店都有多个订单。 为了获取特定商店的所有订单,我编写了以下查询,它工作正常。

 QuerySnapshot result = await Firestore.instance
    .collection('users')
    .document(userID)
    .collection('Stores').
    document(storeID).getDocuments();

但是,我不需要那个。我只需要用户订购的商店。换句话说,我需要特定用户的 storeID 列表。

这是我的代码,但它不起作用。

QuerySnapshot result = await Firestore.instance
    .collection('users')
    .document(userID)
    .collection('Stores').getDocuments();

I just want the IDs

【问题讨论】:

【参考方案1】:

Web 和移动客户端无法仅获取 ID 而没有完整的文档集及其数据。如果您想要一个集合或子集合中所有文档的所有 ID 的列表,您将不得不查询该集合,如您当前在第二个示例中所示。您可以轻松地从 QuerySnapshot 中返回的文档中提取 ID。但是您仍然需要为集合中的每个文档支付读取文档的费用,并等待它们的所有内容传输。

如果您愿意,您可以创建自己的后端端点 API 到 use a server SDK to query for only the IDs,并且只返回 ID,但您仍然需要为文档支付阅读费用。

【讨论】:

啊哈,好的,谢谢

以上是关于如何仅获取文档 ID [Firebase-Flutter]的主要内容,如果未能解决你的问题,请参考以下文章

当仅知道文档 ID 时,如何从 Sharepoint API 检索文档?

Javascript 获取文档元素

如何仅在猫鼬中获取子文档?

如何仅在猫鼬中获取子文档?

对于与用户 uid 相同的文档 ID,如何从 Firestore 中仅检索一个用户的数据?

仅获取 mongodb 集合中具有条件的第一个匹配文档