Я создаю тестовое приложение, которое переключает логическое значение в Firestore. Мне нужно приложение, чтобы получить начальное значение переключателя из Firestore. С помощью моего метода я получаю ошибку типа «Будущее», а не подтип типа «bool». Логическое значение называется LEDOn. Вот мое приложение:
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _MyAppState();
}
}
class _MyAppState extends State<MyApp> {
final db = Firestore.instance;
void updateLED(bool newValue) async {
await db
.collection('LEDStatus')
.document('LEDStatus')
.updateData({'LEDOn': newValue});
}
Future<dynamic> checkLEDStatus() async {
DocumentSnapshot snapshot =
await db.collection('LEDStatus').document('LEDStatus').get();
return snapshot.data['LEDOn'];
}
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(brightness: Brightness.dark),
home: Scaffold(
appBar: AppBar(
title: Text('Thingspeak'),
),
body: Column(
children: <Widget>[
Switch(
value: checkLEDStatus(),
onChanged: (bool newValue) {
setState(() {
print(newValue);
updateLED(newValue);
});
})
],
),
),
);
}
}