именно вот поэтому идентификацию делать надо в провайдеры, когда устанавливаешь текущий аккаунт. Чтобы потом по коду не размазывать миллион идентификаций в зависимости от ....
вместо debugPrint в коде лучше использовать logger, у нас же есть в проекте легирование?
не нужно наружу выставлять детали реализации. Это плохой дизайн, класс должен сам за себя отвечать, и вызов restore() не должен отличаться от вызова login(), соответственно наружу выставлять _restoreFuture категорически не надо.
тут говорил уже: не надо блокировать исполнение, возвращай Future, пусть его использует вызывающий код
установкой текущего акаунта ведает провайдер, на уровне провайдера и надо отрбрасывать успешную идентификацию, НЕ на уровне виджета, цель которого состоит только в обеспечении того, что все защищенные страницы точно идут с загруженным акаунтом.