【问题标题】:I want to get the value of the custom switch from Firebase Firestore我想从 Firebase Firestore 获取自定义开关的值
【发布时间】:2020-11-16 18:09:52
【问题描述】:

我想要开关的当前状态。我试过了,但我遇到了一个错误类型“未来”不是“布尔”类型的子类型。提前致谢


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;
                      });
                    },
                  ),

【问题讨论】:

    标签: flutter dart google-cloud-firestore


    【解决方案1】:

    因为statusonoff 方法返回一个未来,标记为async,它现在将返回Future<T> 的类型,而CustomSwitchvalue 属性需要一个布尔值。这就是您收到此错误的原因。

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

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

    【讨论】:

    • 意外的文本“等待”。尝试删除文本。我收到此错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 2018-11-06
    相关资源
    最近更新 更多