我想从Firebase Firestore中获取自定义开关的值



我想要开关的当前状态。我尝试过,但遇到了一个错误类型"Future"不是类型"bool"的子类型。提前感谢


statusonoff( Device device) async {
DocumentSnapshot variable = await Firestore.instance
.collection('device-configs')
.document(device.id)
.get();
return variable.data['value']['on'];

CustomSwitch(
activeColor: Colors.green,
value: statusonoff(context, device),
onChanged: (value) async {
DocumentSnapshot variable = await Firestore.instance
.collection('device-configs')
.document(device.id)
.get();
print(variable.data['value']['on']);
setState(() {
if (variable.data['value']['on'] == false) {
value = true;
_configMode = "on";
_updateDeviceConfig(context, device);
} else if (variable.data['value']['on'] == true) {
value = false;
_configMode = "off";
_updateDeviceConfig( device);
}
status = value;
});
},
),

因为方法statusonoff返回一个future,标记为async,它现在将返回一个类型的Future<T>,而CustomSwitchvalue属性需要一个布尔值。这就是为什么你会出现这个错误。

要解决此问题,只需在statusonoff(context, device)前面加上await

CustomSwitch(
activeColor: Colors.green,
value: await statusonoff(context, device),
//.....