我从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(),
);
}
},
);
}
}
答案 0 :(得分:1)
拥有DocumentSnapshot
时,可以使用document.documentID
获取其键,并使用document.reference.path
获取整个路径
DocumentSnapshot.reference
返回此快照的DocumentReference
,可用于(也)获取文档的documentID
和完整的path
。
在这种情况下,document
是类型为DocumentSnapshot
的对象,您已经正确检索了该对象。
答案 1 :(得分:0)
对来自 creativecreatorormaybenot
的上述答案的更新,现在可以在 document.id
的 DocumentSnapshot
中找到文档 ID。 document.documentID
不会返回 ID。
这是我找到的答案的link