Flutter 带开关和颤振的Firestore中的状态变化问题真与假
我有一个开关,可以在isOnline和not之间改变用户的状态。 这是一个介于真与假之间的错误。 我用cupertino开关创建了一个方法:Flutter 带开关和颤振的Firestore中的状态变化问题真与假,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,我有一个开关,可以在isOnline和not之间改变用户的状态。 这是一个介于真与假之间的错误。 我用cupertino开关创建了一个方法: bool isOnline = true; 原始状态为true,因此用户可以看到它们在线可用 在cupertino开关中,我创建了一个函数: CupertinoSwitch( value: isOnline, onChanged: (bool value) {
bool isOnline = true;
原始状态为true,因此用户可以看到它们在线可用
在cupertino开关中,我创建了一个函数:
CupertinoSwitch(
value: isOnline,
onChanged: (bool value) {
setState(() {
changeState();
isOnline = value;
});
},
),
我需要更新firestore系列:
CollectionReference changestate = FirebaseFirestore.instance.collection('Consultant');
Future<void> changeState() {
var firebaseUser = FirebaseAuth.instance.currentUser;
return changestate
.doc(firebaseUser.uid)
.update({
'isOnline': isOnline,
},)
CollectionReference changestate=FirebaseFirestore.instance.collection('Consultant');
未来变更状态(){
var firebaseUser=FirebaseAuth.instance.currentUser;
返回变换状态
.doc(firebaseUser.uid)
.更新({
“isOnline”:isOnline,
},)
除了由内而外,所有功能都可以工作……当我将开关转到绿色时,它将返回数据库false
,如果我将其关闭,它将返回true
有什么建议吗?请在您的州代码通话中提出
isOnline = value;
之后
方法
像这样,
CupertinoSwitch(
value: isOnline,
onChanged: (bool value) {
setState(() {
isOnline = value;
changeState();
});
},
),
在您的状态代码调用中出现问题
isOnline = value;
之后
方法
像这样,
CupertinoSwitch(
value: isOnline,
onChanged: (bool value) {
setState(() {
isOnline = value;
changeState();
});
},
),
这里有很多事情没有完成。如果你只想更新一个值,为什么不试试firebase实时数据库呢?Firestore有一个不同的用例,它不适用于简单的布尔更改。你会收到很多费用。另外,如果你想在flifter方面做得更好,你必须学习状态管理。SetState()重建整个屏幕,成本很高。我建议先学习提供商,然后再学习Bloc:这里有很多事情没有做。如果你只想更新一个值,为什么不试试firebase实时数据库呢?Firestore有不同的使用案例,它不适用于简单的布尔更改。你会收到很多费用。另外,如果你anna为了更好地掌握颤振,您必须学习状态管理。SetState()重建整个屏幕,而且成本高昂。我建议先学习提供商,然后再学习集团: