【问题标题】:I have a Firestore database and in my Flutter app i retrieved the docID i need. How do i retrieve a specific field of the document usign docID?我有一个 Firestore 数据库,在我的 Flutter 应用程序中我检索到了我需要的 docID。如何检索文档 usign docID 的特定字段?
【发布时间】:2021-04-24 15:54:21
【问题描述】:

我找到了我需要的文档的文档 ID。我在数据库“maindb”中的每个文档都有 4 个字段(看守、老人、脉冲、临时)。如果我的用户 ID 可用,在脉冲字段中仅检索整数值的语法是什么?

【问题讨论】:

  • 您已经尝试过什么?我相信这种常见情况会在他们的文档中列出。
  • 我广泛搜索了他们的文档和堆栈溢出但我找不到任何东西
  • 自从我上次使用 Firestore 已经有一段时间了,但我会在下面发布我认为的解决方案。让我知道它是否有效

标签: firebase flutter google-cloud-firestore


【解决方案1】:

我直接从 Flutter Fire documentation 获取了这个。我不确定您是否使用它来连接到 Firestore,但至少它应该是一个很好的起点。

FirebaseFirestore.instance
    .collection('users')
    .doc(userId) <--- Just use the document ID here
    .get()
    .then((DocumentSnapshot documentSnapshot) {
      if (documentSnapshot.exists) {
        print('Document exists on the database');
      }
    });

这将返回与该 userId 相关的整个文档。然后,您可以从中获取所需的任何条目。

【讨论】:

  • 哦,非常感谢!这正是我想要的:)
  • 我很高兴它成功了。如果可以,请接受答案并帮助其他人找到它。
【解决方案2】:

欢迎来到 SO。您无法检索文档中的单个字段。检索整个文档,然后您可以对所需的信息进行切片。

但是,您可以基于单个或多个字段搜索和查询文档。

where('pulse', isEqualTo: 75)

在计费方面,也是一样的,Firestore 是根据文档的读\写来计费的。所以写一个字段或者写一个完整的文档,都是一样的价钱,不用担心。

【讨论】:

  • 您好,谢谢,但是使用 docID 检索文档的语法是什么?这是我找到 docid 的方法。 main.where('elderly', isEqualTo: old).get().then( (QuerySnapshot 快照) => { snapshot.docs.forEach((f) { docid = f.reference.id; }), }, ) ;
猜你喜欢
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多