Это может быть нубский вопрос, но я пытаюсь добавить некоторые функциональные возможности поверх потока c Аутентификации Firebase во Flutter (вот пример ). У меня есть поток ниже, чтобы получить экземпляры пользователя Firebase, когда пользователь входит в систему / выходит, которую я конвертирую в модель пользователя моего приложения.
// auth changes user stream
Stream<User> get user {
return _auth.onAuthStateChanged
.map((FirebaseUser user) => User(uid: user.uid));
}
Это все хорошо, но поскольку у пользователя Firebase очень ограниченные свойства, мне нужно получить дополнительные пользовательские данные. Я делаю это в асинхронном c запросе Firestore, который возвращает экземпляр пользователя с дополнительными заполненными свойствами.
Моя проблема в том, что мне трудно понять, как я могу построить контроллер потока поверх потока выше , чтобы добавить результаты моего асинхронного запроса c, чтобы что мой поток делает экземпляр User со всеми заполненными свойствами доступными для остальной части приложения.
Заранее спасибо! Кроме того, если у кого-нибудь есть предложения о том, как получить этот дополнительный пользователь после входа в систему, мне было бы интересно услышать, как выглядят лучшие практики :)