【发布时间】:2020-08-12 11:58:57
【问题描述】:
我想在 streambuilder 中使用 await。但是,如果你在里面使用 async,你会得到一个错误。在下面的代码上!!!!!!!!!这就是我要解决的部分。如果我能告诉你怎么做,非常感谢。
class _MemoStreamState extends State<MemoStream> {
final _fireStore = Firestore.instance;
@override
Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: _fireStore
.collection(widget.logInUsrEmail)
.orderBy('id', descending: false)
.snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) return LinearProgressIndicator();
final memos = snapshot.data.documents;
List<MemoMaterial> memoList = [];
for (var memo in memos) {
final memoDocumentID = memo.documentID;
final memoTitle = await PlatformStringCryptor().decrypt(memo.data['title'], _key); !!!!!!!!!!
final memoUsrID = memo.data['usrID'];
final memoUsrPW = memo.data['usrPW'];
final memoText = memo.data['text'];
final memoCreateTime = memo.data['createTime'];
final memoMaterial = MemoMaterial(
logInUsrEmail: widget.logInUsrEmail,
doc: memoDocumentID,
title: memoTitle,
usrID: memoUsrID,
usrPW: memoUsrPW,
text: memoText,
createTime: memoCreateTime,
);
memoList.add(memoMaterial);
}
return Expanded(
child: new ListView.builder(
【问题讨论】:
-
您不能使用异步构建方法。在定义
memoTitle时,您应该编辑您的流并产生结果。有关处理流的帮助,请参阅 the docs。 -
要编辑流的部分是"stream: _fireStore .collection (widget.logInUsrEmail) .orderBy('id', descending: false) .snapshots()(),"你的意思是?跨度>
标签: flutter dart google-cloud-firestore async-await firebase-security