firebase - 如何在不指定的情况下在 Firebase 上获取子集合?
问题描述
嘿,伙计们,我在 Firebase 数据库的“词汇”集合下有这些子集合,但我需要在不指定的情况下调用它们,因为它们不止一个,而且它们是从同一页面调用的。除了集合“颜色”之外,是否可以不将其指定为“documentID”而是针对集合?
class CategoryScreen extends StatelessWidget {
final DocumentSnapshot vocabulary;
CategoryScreen(this.vocabulary);
@override
Widget build(BuildContext context) {
return Scaffold(
body: FutureBuilder<QuerySnapshot>(
future: Firestore.instance.collection('vocabulary').document(vocabulary.documentID)
.collection('colors').getDocuments(),
builder: (context, snapshot){
if(!snapshot.hasData)
return Center(
child: CircularProgressIndicator(),);
else
return Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.all(10.0),
child: Card(
elevation: 7.0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(50)
),
child: Column(
children: <Widget>[
Container(
height: 350.0,
width: 350.0,
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage(vocabulary.data["image"]
),
fit: BoxFit.fill),
borderRadius: BorderRadius.only(
topLeft: Radius.circular(50),
topRight: Radius.circular(50)))
),
Container(
height: 70.0,
width: 300.0,
child: Padding(
padding: const EdgeInsets.all(2.0),
child: Center(
child: AutoSizeText(vocabulary.data["name"],
style: TextStyle(
fontFamily: 'Twiddlestix',
fontSize: 25,
fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
minFontSize: 15,
),
)
),
),
],
),
),
),
],
);
},
),
);
}
}
解决方案
Cloud Firestore 对文档的引用中没有通配符。因此,为了创建查询,您需要知道所有集合名称。如果您只需要根据特定属性获取集合中的某些文档,则必须使用某些字段值作为过滤器进行查询。
除了集合“颜色”之外,是否可以不将其指定为“documentID”而是针对集合?
不,这是不可能的。你不能替代它。
推荐阅读
- tensorflow - 使用经过训练的权重来训练不同的数据集
- python - 收到请求时如何修改flask的默认输出
- node.js - 无法使用 Node.js 从 SQLite 数据库中检索新值
- python-3.x - Python 中的单词大写,但有例外(不是每个单词)
- python-3.x - 如果 __name__ == '__main__' 如何使用:
- python - 如何通过 Boto3 将文件上传到 S3 中的特定文件夹
- node.js - 如何修复 Node.js 中的“未定义参数”错误?
- database-design - 防止基于节点属性创建新关系
- html - 在 CSS 中为顶部和底部边框创建波浪形边框
- php - 错误号:1066 不是唯一的表/别名:codeigniter 中的“tb_perumahan”