【发布时间】:2020-12-02 10:48:51
【问题描述】:
在 Flutter 中,我使用 StreamBuilder 从 Firestore 的集合中获取文档的子集合。但是我得到了 null 并且进度指示器一直在旋转。
结构如下:
/dev/l0WwBF4HXBZ59hMGcKvY/meas_weight
这是我的代码:
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder(
stream: Firestore.instance
.collection('dev')
.document('l0WwBF4HXBZ59hMGcKvY')
.collection('meas_weight')
.snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) return new Text('Error: ${snapshot.error}');
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return CircularProgressIndicator();
default:
return ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index) {
DocumentSnapshot document = snapshot.data.documents[index];
return ListTile(
title: Text('${document['value']}'),
);
},
);
}
},
),
);
}
如果我只是查询父集合“dev”,它可以正常工作,并且我会得到其中的文档列表。但如果我尝试获取“meas_weight”子集合,则不会。
感谢您的帮助。
【问题讨论】:
-
根据:firebase.google.com/docs/firestore/query-data/…“使用移动/Web 客户端库无法检索集合列表。您应该只在受信任的服务器环境中将集合名称作为管理任务的一部分进行查找。如果您发现您在移动/网络客户端库中需要此功能,请考虑重组您的数据,以便子集合名称是可预测的。”
-
谢谢马里奥。我希望找到一个解决方案,而不必重组数据。但我想我已经达到了极限。
标签: flutter google-cloud-firestore stream-builder