Оператор проверки нуля используется для нулевого значения, появляющегося при выходе текущего пользователя из системы. ⇐ Android
Оператор проверки нуля используется для нулевого значения, появляющегося при выходе текущего пользователя из системы.
Если я запускаю приложение и последняя учетная запись пользователя остается зарегистрированной и нажимаю кнопку выхода из системы, этот оператор проверки нуля используется для нулевого значения — это то, что появляется в эмуляторе, а я нет знать, где точная ошибка, чтобы ее решить.
это мой код main.dart
import 'dart:async'; импортировать «пакет: firebase_auth/firebase_auth.dart»; импортировать «пакет: флаттер/материал.dart»; импортировать «пакет: google_mobile_ads/google_mobile_ads.dart»; импортировать «пакет: провайдер/провайдер.dart»; импортировать «пакет:water_reminder_app/screens/home_page.dart»; импортировать «пакет:water_reminder_app/screens/start_page.dart»; импортировать «пакет:water_reminder_app/services/notify_service.dart»; импортировать «пакет:water_reminder_app/widgets/database.dart»; импортировать «пакет:water_reminder_app/widgets/user_data.dart»; импортировать «firebase_options.dart»; импортировать «пакет: firebase_core/firebase_core.dart»; импортировать «модель/pages_names.dart»; Future main() async { ВиджетыFlutterBinding.ensureInitialized(); неожиданный (MobileAds.instance.initialize()); ждать NotificationServices().init(); ждут Firebase.initializeApp (параметры: DefaultFirebaseOptions.currentPlatform); запустить приложение( ChangeNotifierProvider( create: (контекст) => CloudDataProvider(), дочерний элемент: const MyApp()), ); } класс MyApp расширяет StatefulWidget { const MyApp({ супер.ключ, }); @переопределить State createState() => _MyAppState(); } класс _MyAppState расширяет State { Нить? профильImagePath; Пользователь? пользователь; @переопределить недействительный initState() { супер.initState(); пользователь = FirebaseAuth.instance.currentUser; } @переопределить Сборка виджета (контекст BuildContext) { окончательный CloudDataProvider = Provider.of(контекст, прослушивание: ложь); окончательный вес = cloudDataProvider.weight; последний блок = cloudDataProvider.unit; последнее время сна = cloudDataProvider.bedtime; окончательное пробуждение = cloudDataProvider.wakeUptime; вернуть Мультипровайдер( провайдеры: [ ChangeNotifierProvider( создать: (контекст) => UserDataProvider(), ), ChangeNotifierProvider( создать: (контекст) => CloudDataProvider(), ), ], дочерний элемент: MaterialApp( debugShowCheckedModeBanner: ложь, дома: пользователь == ноль ? константная стартовая страница() : Домашняя страница( вес: вес ?? 0, единица: единица ?? '', bedTime: время сна ?? '', пробуждениеВремя: пробуждениеВремя ?? ''), onGenerateRoute: MyRoutes.genrateRoute, ), ); } } А это файл CloudDataProvider
import 'package:cloud_firestore/cloud_firestore.dart'; импортировать «пакет: firebase_auth/firebase_auth.dart»; импортировать «пакет: флаттер/cupertino.dart»; класс CloudDataProvider расширяет ChangeNotifier { двойной? масса; Нить? единица; Нить? время сна; Нить? время пробуждения; void fetchUserData() асинхронный { конечный пользователь? пользователь = FirebaseAuth.instance.currentUser; если (пользователь != ноль) { окончательный пользовательский документ = FirebaseFirestore.instance.collection('users').doc(user.uid); окончательный userSnapshot = ждут userDoc.get(); вес = userSnapshot['вес'] как двойной; unit = userSnapshot['unit'] как строка; время сна = userSnapshot['время сна'] как строка; WakeUptime = userSnapshot['время пробуждения'] как строка; } уведомить слушателей(); } } Вы можете найти все приложение по этой ссылке на gitHub
Я пытался использовать ?? вместо !, который я нашел в этой ссылке. Оператор проверки нуля используется для нулевого значения, но ошибка все еще существует. кто-нибудь может знать, как решить эту проблему
Если я запускаю приложение и последняя учетная запись пользователя остается зарегистрированной и нажимаю кнопку выхода из системы, этот оператор проверки нуля используется для нулевого значения — это то, что появляется в эмуляторе, а я нет знать, где точная ошибка, чтобы ее решить.
это мой код main.dart
import 'dart:async'; импортировать «пакет: firebase_auth/firebase_auth.dart»; импортировать «пакет: флаттер/материал.dart»; импортировать «пакет: google_mobile_ads/google_mobile_ads.dart»; импортировать «пакет: провайдер/провайдер.dart»; импортировать «пакет:water_reminder_app/screens/home_page.dart»; импортировать «пакет:water_reminder_app/screens/start_page.dart»; импортировать «пакет:water_reminder_app/services/notify_service.dart»; импортировать «пакет:water_reminder_app/widgets/database.dart»; импортировать «пакет:water_reminder_app/widgets/user_data.dart»; импортировать «firebase_options.dart»; импортировать «пакет: firebase_core/firebase_core.dart»; импортировать «модель/pages_names.dart»; Future main() async { ВиджетыFlutterBinding.ensureInitialized(); неожиданный (MobileAds.instance.initialize()); ждать NotificationServices().init(); ждут Firebase.initializeApp (параметры: DefaultFirebaseOptions.currentPlatform); запустить приложение( ChangeNotifierProvider( create: (контекст) => CloudDataProvider(), дочерний элемент: const MyApp()), ); } класс MyApp расширяет StatefulWidget { const MyApp({ супер.ключ, }); @переопределить State createState() => _MyAppState(); } класс _MyAppState расширяет State { Нить? профильImagePath; Пользователь? пользователь; @переопределить недействительный initState() { супер.initState(); пользователь = FirebaseAuth.instance.currentUser; } @переопределить Сборка виджета (контекст BuildContext) { окончательный CloudDataProvider = Provider.of(контекст, прослушивание: ложь); окончательный вес = cloudDataProvider.weight; последний блок = cloudDataProvider.unit; последнее время сна = cloudDataProvider.bedtime; окончательное пробуждение = cloudDataProvider.wakeUptime; вернуть Мультипровайдер( провайдеры: [ ChangeNotifierProvider( создать: (контекст) => UserDataProvider(), ), ChangeNotifierProvider( создать: (контекст) => CloudDataProvider(), ), ], дочерний элемент: MaterialApp( debugShowCheckedModeBanner: ложь, дома: пользователь == ноль ? константная стартовая страница() : Домашняя страница( вес: вес ?? 0, единица: единица ?? '', bedTime: время сна ?? '', пробуждениеВремя: пробуждениеВремя ?? ''), onGenerateRoute: MyRoutes.genrateRoute, ), ); } } А это файл CloudDataProvider
import 'package:cloud_firestore/cloud_firestore.dart'; импортировать «пакет: firebase_auth/firebase_auth.dart»; импортировать «пакет: флаттер/cupertino.dart»; класс CloudDataProvider расширяет ChangeNotifier { двойной? масса; Нить? единица; Нить? время сна; Нить? время пробуждения; void fetchUserData() асинхронный { конечный пользователь? пользователь = FirebaseAuth.instance.currentUser; если (пользователь != ноль) { окончательный пользовательский документ = FirebaseFirestore.instance.collection('users').doc(user.uid); окончательный userSnapshot = ждут userDoc.get(); вес = userSnapshot['вес'] как двойной; unit = userSnapshot['unit'] как строка; время сна = userSnapshot['время сна'] как строка; WakeUptime = userSnapshot['время пробуждения'] как строка; } уведомить слушателей(); } } Вы можете найти все приложение по этой ссылке на gitHub
Я пытался использовать ?? вместо !, который я нашел в этой ссылке. Оператор проверки нуля используется для нулевого значения, но ошибка все еще существует. кто-нибудь может знать, как решить эту проблему
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Жест флаттера Оператор проверки нуля, используемый для нулевого значения
Anonymous » » в форуме Android - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Жест флаттера Оператор проверки нуля, используемый для нулевого значения
Anonymous » » в форуме Android - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-