【发布时间】:2022-01-19 21:58:09
【问题描述】:
当点击 Tile 时,我正在尝试从 Flutter 中的 Firebase 获取 ListTile 的文档 ID:
Stream collectionStream = FirebaseFirestore.instance.collection('items').snapshots();
Stream documentStream = FirebaseFirestore.instance.collection('items').doc('ABC123').snapshots();
class AllItemList extends StatefulWidget {
@override
_AllItemListState createState() => _AllItemListState();
}
class _AllItemListState extends State<AllItemList> {
final Stream<QuerySnapshot> _itemStream = FirebaseFirestore.instance.collection('items').snapshots();
@override
Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: _itemStream,
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) {
return Text('Something went wrong');
}
if (snapshot.connectionState == ConnectionState.waiting) {
return Text("Loading");
}
return ListView(
//physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
children: snapshot.data!.docs.map((DocumentSnapshot document) {
Map<String, dynamic> data = document.data()! as Map<String, dynamic>;
return ListTile(
title: Text(data['title']),
subtitle: Text(data['userName']),
trailing: Text('Priority: '+data['priority'].toString()),
onTap: (){
print('This Document ID');
},
);
}).toList(),
);
},
);
}
}
但我还是卡住了
【问题讨论】:
-
放置文档时可以将该docid保存为字段,这样就可以从保存的文档中获取id
标签: flutter google-cloud-firestore