使用Flutter获取Firestore文档密钥

时间:2019-04-28 05:34:08

标签: dart flutter google-cloud-firestore

我从https://pub.dartlang.org/packages/cloud_firestore#-readme-tab-中获得了以下代码,但是我不确定如何获取每个文档的密钥。我想做的是点击每个术语以查看或进入编辑页面。

Firestore数据模型:

-content
--sPuJxAJu0dBMZLBTakd4
---term
---body content

代码:

class _TermsState extends State<Terms> {
  @override
  Widget build(BuildContext context) {
    return StreamBuilder<QuerySnapshot>(
      stream: Firestore.instance.collection('content').snapshots(),
      builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
        if (snapshot.hasError) return Text('Error: ${snapshot.error}');

        switch (snapshot.connectionState) {
          case ConnectionState.waiting:
            return Text('Loading...');
          default:
            return ListView(
              children:
                  snapshot.data.documents.map((DocumentSnapshot document) {
                print(document['term']);
                return ListTile(
                  title: Text(document['term']),
                );
              }).toList(),
            );
        }
      },
    );
  }
}

2 个答案:

答案 0 :(得分:1)

拥有DocumentSnapshot时,可以使用document.documentID获取其,并使用document.reference.path获取整个路径

在这种情况下,document是类型为DocumentSnapshot的对象,您已经正确检索了该对象。

答案 1 :(得分:0)

对来自 creativecreatorormaybenot 的上述答案的更新,现在可以在 document.idDocumentSnapshot 中找到文档 ID。 document.documentID 不会返回 ID。

这是我找到的答案的link