我从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(),
);
}
},
);
}
}
当你有一个DocumentSnapshot
时,你可以使用document.documentID
获取它的密钥和document.reference.path
来获得整个路径。
DocumentSnapshot.documentID
DocumentSnapshot.reference
返回此快照的DocumentReference
,可用于(也)获取documentID
以及文档的完整path
。DocumentReference.documentID
DocumentReference.path
在这种情况下,document
是DocumentSnapshot
类型的对象,您已经正确检索了它。