【发布时间】:2020-04-25 12:19:43
【问题描述】:
我有这个函数的范围模型,我希望在按下按钮时有一个firebase增量来快照,但它返回〜在null上调用了getter'documentID'。〜,它改变了我的图标的状态但数字不会增加。如果我给出文档的名称,它可以正常工作,但我不想指定它。关于什么可能是解决方案的任何想法?
void main() {
runApp(EaiCasimiro());
}
class EaiCasimiro extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ScopedModel<LikesModel>(
model: LikesModel(),
child: MaterialApp(
title: "E aí, Casimiro?",
home: HomeScreen(),
debugShowCheckedModeBanner: false,
)
);
}
}
class LikesModel extends Model {
DocumentSnapshot snapshot;
bool _liked = true;
static LikesModel of(BuildContext context) =>
ScopedModel.of<LikesModel>(context, rebuildOnChange: true);
bool isLiked() => _liked;
void pressed(){
_liked = !_liked;
notifyListeners();
}
void changeLikes() {
Firestore.instance
.collection("lanchonetes")
.document(snapshot.documentID)
.updateData({'likes': FieldValue.increment(_liked ? -1 : 1)});
}
}
【问题讨论】:
-
请注意在您的问题中正确格式化您的代码,以便于阅读。看起来你已经失去了很多缩进,这使得它变得困难。您可以通过简单地用三个反引号开始和结束整个块来将整个文本块标记为代码:```
-
感谢 Doug 的提示,下次发布代码时我会努力改进。
-
您可以随时返回并立即编辑代码,方法是单击问题底部的“编辑”链接并在编辑器中进行更改。
标签: firebase flutter dart google-cloud-firestore scoped-model