Home > Back-end >  LateInitializationError: Field 'authProvider' has not been initialized
LateInitializationError: Field 'authProvider' has not been initialized

Time:12-13

I got the error LateInitializationError: Field 'authProvider' has not been initialized. for the following:

class HomePage extends StatefulWidget {
  HomePage({Key? key}) : super(key: key);

  @override
  State createState() => HomePageState();
}

class HomePageState extends State<HomePage> {
  final FirebaseMessaging firebaseMessaging = FirebaseMessaging.instance;
  final ScrollController listScrollController = ScrollController();

  late AuthProvider authProvider;
  String? currentUserId;
  late MainProvider mainProvider;
  Debouncer searchDebouncer = Debouncer();
  StreamController<bool> btnClearController = StreamController<bool>();
  TextEditingController searchBarTec = TextEditingController();

  @override
  void initState() {
    super.initState();
    mainProvider = context.read<MainProvider>();

    if (authProvider.getUserFirebaseId()!.isNotEmpty == true) {
      currentUserId = authProvider.getUserFirebaseId()!;
    } else {
      return null;
    }
    registerNotification();
    listScrollController.addListener(scrollListener);
  }

//more code below

This code is from a Demo: Chat App with Flutter

How do I initialize the fields for authProvider, mainProvider etc?

CodePudding user response:

Late initialization error means that a variable marked as late (in your case authProvider) was not initialized before it was accessed.

on a widget the first thing you execute is the constructor and then you execute the initstate. your constructor has nothing and initstate reads authProvider.getUserFirebaseId().

If you take a look at the video's github page, you will see that before calling authProvider, they initialize it by running the following line:

authProvider = context.read<AuthProvider>();
homeProvider = context.read<HomeProvider>();

If you are following a tutorial, the tutorial is either outdated or not complete if it has this sort of error.

  • Related