I'm using FirebaseAuth and Firestore for my application.
'User' is a model which represent a document on firestore and use uid from FirebaseUser to be its DocumentId as well.
In order to get a 'User', I have to pass in uid from FirebaseUser.
My idea is setup a StreamProvider of FirebaseUser, and then setup another StreamProvider of User, which takes FirebaseUser as a param.
But error occurs, I couldn't found the solution for this issue, any advice would help me very much.
List<SingleChildCloneableWidget> uiConsumableProviders = [
StreamProvider<FirebaseUser>(
builder: (context) => Provider.of<LoginNotifier>(context, listen: false).streamFirebaseUser,
),
StreamProvider<User>(
builder: (context) =>
Provider.of<UserNotifier>(context, listen: false).streamUser(Provider.of<FirebaseUser>(context)),
),
];
I/flutter (15813): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (15813): The following assertion was thrown building InheritedProvider<FirebaseUser>:
I/flutter (15813): inheritFromWidgetOfExactType(InheritedProvider<FirebaseUser>) or inheritFromElement() was called
I/flutter (15813): before BuilderStateDelegate<Stream<User>>.initDelegate() completed.
I/flutter (15813):
I/flutter (15813): When an inherited widget changes, for example if the value of Theme.of()
I/flutter (15813): changes, its dependent widgets are rebuilt. If the dependent widget's reference
I/flutter (15813): to the inherited widget is in a constructor or an initDelegate() method, then
I/flutter (15813): the rebuilt dependent widget will not reflect the changes in the inherited
I/flutter (15813): widget.
I/flutter (15813):
I/flutter (15813): Typically references to inherited widgets should occur in widget build()
I/flutter (15813): methods. Alternatively, initialization based on inherited widgets can be placed
I/flutter (15813): in the didChangeDependencies method, which is called after initDelegate and
I/flutter (15813): whenever the dependencies change thereafter.
I/flutter (15813):