Значение типа «Пользователь?» не может быть возвращено из метода «_userFromFirebaseUser», поскольку оно имеет возвращаемый тип «Пользователь»

# #firebase #flutter #dart

Вопрос:

Значение типа quot;Пользователь?quot; не может быть возвращено из метода quot;_userFromFirebaseUserquot;, поскольку оно имеет возвращаемый тип quot;Пользовательquot;.

  1. Тип аргумента «Пользовательская функция(Пользователь)» не может быть присвоен типу параметра » Пользовательская функция(Пользователь?)».
  2. Значение типа «Пользователь?» не может быть возвращено из метода «_userFromFirebaseUser», поскольку оно имеет возвращаемый тип «Пользователь».

Ответ №1:

Поскольку вы можете вернуться null из своей функции, вам нужно объявить свою функцию, которая null возможна, поэтому вместо:

 User _userFromFirebaseUser(auth.User user) {  ... }  

Вы должны написать это так:

 User? _userFromFirebaseUser(auth.User user) {  ... }  

Обратите внимание на знак вопроса — это, по сути , означает, что эта функция либо вернет ваш User объект, либо null , без знака вопроса, она всегда должна быть экземпляром User

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

1. отлично, это сработало!

Ответ №2:

Я предполагаю, что вы хотите _userFromFirebaseUser вернуть свою User модель , не auth.User так ли?

 User _userFromFirebaseUser(auth.User user) {  return User(uid: user.uid); }