Flutter Flatter FireStore,通过文档密钥获取文档

Flutter Flatter FireStore,通过文档密钥获取文档,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,在本例中,通过.documents[x]获取文档,其中x是基于零的文档编号。如何通过键值获取文档? 例如,3文档的键为“qwwe” 如何获取此文档? 快照.数据.文档[“qwwe”] 这是正在使用代码问题代码//out的代码 //======= this works // body: new ListOfNACS01(), body: new StreamBuilder( // stream: Firestore.instance.collect

在本例中,通过.documents[x]获取文档,其中x是基于零的文档编号。如何通过键值获取文档? 例如,3文档的键为“qwwe”

如何获取此文档?
快照.数据.文档[“qwwe”]

这是正在使用代码问题代码//out的代码

//=======   this works
//      body: new ListOfNACS01(),

        body: new StreamBuilder(
//          stream: Firestore.instance.collection('COMPLEX_NONACS').document('A01B01C01D02').snapshots(),
          stream: Firestore.instance.collection('COMPLEX_NONACS').snapshots(),
          builder: (context, snapshot){
            if (!snapshot.hasData) return const Text("---  loading ---");
//            return new ListView.builder(
//              itemCount: snapshot.data.document.length,
//            );

              return Column(
                children: <Widget>[
                  Text(snapshot.data.documents[0].documentID),
                  Text(snapshot.data.documents[0]["DE02PRIMARY"]["INDICATION"]),


                  //--------  this does not work  ------------
                  //  how to display a document by DocumentID?
// --  The below line gives error of... 
// error: Too many positional arguments: 1 expected, but 2 found. 
// (extra_positional_arguments_could_be_named at [scaiqit55] 
// lib/main.dart:48).

                  Text(snapshot.data.document['A01B01C01D01']),
                  Text(snapshot.data.documents[0]["DE02PRIMARY"]["INDICATION"]),


                ],


              );
          },
        ),
    );
  }
}
/=======这很有效
//正文:新列表OFNACS01(),
正文:新StreamBuilder(
//流:Firestore.instance.collection('COMPLEX_NoNAS')。文档('A01B01C01D02')。快照(),
流:Firestore.instance.collection('COMPLEX_NONACS').snapshots(),
生成器:(上下文,快照){
如果(!snapshot.hasData)返回常量文本(“--loading--”);
//返回新的ListView.builder(
//itemCount:snapshot.data.document.length,
//            );
返回列(
儿童:[
文本(snapshot.data.documents[0].documentID),
文本(快照.数据.文档[0][“DE02PRIMARY”][“指示”]),
//--------这行不通------------
//如何按文档ID显示文档?
//--下一行给出了。。。
//错误:位置参数太多:应为1,但找到2。
//(额外位置参数可以在[scaiqit55]中命名)
//lib/main.dart:48)。
文本(快照.数据.文档['A01B01C01D01']),
文本(快照.数据.文档[0][“DE02PRIMARY”][“指示”]),
],
);
},
),
);
}
}

如果您指的是使用ID获取文档快照,下面是使用^0.14.3版获取Cloud Firestore文档快照的示例。我还添加了一个示例,介绍了如何从文档快照中获取键值(如果这正是您需要的)。您可以访问此网站了解更多详细信息

//集合引用
FirebaseFirestore.instance.collection('水果')
//使用ID获取的文档快照
.doc('AQbq33GJ9GE09OaChOPq')
//使用键获取文档快照内的值
//值包含来自文档快照的哈希映射
.get().then((value)=>debugPrint('Fruit name:${value.data()['name']}');
这是从Firestore获取的数据


经过一些研究后,
debugPrint()
的预期输出是“水果名:Cherry”

。。。看来我应该用这个评论。。。