I was looking at code at git for firebase auth and it works fine, but a problem came when, I upgrade dependencies, particularly for rxdart from ^0.21.0 to current (^0.24.1), I see other question that refer to
The Observable can be replaced by Stream in accepted answer. I am able to change
Observable<FirebaseUser> user; // firebase user
..
user = Observable(_auth.onAuthStateChanged);
to
Stream<FirebaseUser> user; // firebase user
..
user = _auth.onAuthStateChanged;
but
Observable<Map<String, dynamic>> profile; // custom user data in Firestore
..
profile = user.switchMap((FirebaseUser u) {
if (u != null) {
return _db
.collection('users')
.document(u.uid)
.snapshots()
.map((snap) => snap.data);
} else {
return Observable.just({});
}
});
I tried
Object profile;
..
user.map( (FirebaseUser u) {
if (u != null) {
return _db
.collection('users')
.document(u.uid)
.snapshots()
.map((snap) => snap.data);
} else {
return Stream.empty();
}
});
But it does not get trigger the listen and the user profile is not read.