Мой выход из Firebase Flutter конфликтует с моей системой бронирования - PullRequest
1 голос
/ 28 января 2020

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

══╡ EXCEPTION CAUGHT BY PROVIDER ╞══════════════════════════════════════════════════════════════════
I/flutter ( 6595): The following assertion was thrown:
I/flutter ( 6595): An exception was throw by _MapStream<FirebaseUser, User> listened by
I/flutter ( 6595): StreamProvider<User>, but no `catchError` was provided.
I/flutter ( 6595): 
I/flutter ( 6595): Exception:
I/flutter ( 6595): NoSuchMethodError: The getter 'uid' was called on null.
I/flutter ( 6595): Receiver: null
I/flutter ( 6595): Tried calling: uid

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

//create user object based on firebase user
User _userFromFirebaseUser(FirebaseUser user){

   userId(user.uid);
 //if i comment the above line out my signout works but bookings not
  return user != null ? User(uid: user.uid) : null;

}

1 Ответ

1 голос
/ 28 января 2020

Вы получили эту ошибку, потому что вы уже вышли из системы, в то время как пользователь не вошел в систему. Вам нужно изменить код на следующее:

User _userFromFirebaseUser(FirebaseUser user){
    userId(user?.uid ?? "no user")
  return user != null ? User(uid: user.uid) : null;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...