GOOGLE ADS

четверг, 28 апреля 2022 г.

Firebase Flutter не распознает мою строку как параметр

Я пытаюсь получить электронную почту пользователя, сохранить в общих настройках и использовать в качестве имени коллекции в другом файле.

мой код для сохранения

Future<void> saveEmail() async {
var sharedPreferences = await SharedPreferences.getInstance();
sharedPreferences.setString("email", _emailKontroller.text);}

здесь нет проблем, я могу сохранять данные в sharedPreferences и читать данные из другого файла.

мой код для чтения

 @override
void initState() {
// TODO: implement initState
void initilaizeEmail() async {
var sharedPreferences = await SharedPreferences.getInstance();
_email = sharedPreferences.getString("email");
print(_email);
}
initilaizeEmail();
setState(() {});

}

выход

Я/флаттер ( 3274): a@a.com

где я использую в качестве параметра свои данные sharedPreferences:

 query: FirebaseFirestore.instance
.collection("test")
.doc("$_email")
.collection("class 0"),
// to fetch real-time data
isLive: false,

Я ничего не вижу на экране, но если я удалю

_Эл. адрес

и набери "a@a.com" вручную все работает. В чем проблема?


Решение проблемы


Проблема в том, что initilaizeEmailэто asyncметод, и вы не ждете его результата. Чтобы исправить это:

await initilaizeEmail();

Я также рекомендую исправить имя метода на initializeEmail. Хотя это не изменит поведение, орфографические ошибки, как правило, отвлекают от других проблем.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...