В insertDetails
вы передаете null
для prefs
, поэтому, когда вы пытаетесь выполнить prefs.setString
, это не получается.
Собираем воедино другие детали из ваших заданных вопросов, потому что передаваемое вами значение не инициализировано (пока).
У тебя слишком сложные вещи. У вас есть переменная-член
Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
это просто ничего не делает. SharedPreferences
является одноэлементным, поэтому нет ничего плохого в том, чтобы просто получить ссылку, когда она вам понадобится.
Также следует отметить, что нет необходимости ждать результата .setString()
в общих настройках. Новое значение немедленно записывается в кэш в памяти, а собственный запрос отправляется на уровень Android или iOS, чтобы зафиксировать его в хранилище.
Refactor insertDetails
вот так:
static insertDetails(var response) async {
print('Token is : ${response['token']}');
print('userID is : ${response['userID']}');
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString(authTokenKey, response['token']);
prefs.setString(userIdKey, response['userID']);
}