在更新之前,我使用此功能在用户登录状态更改时从 firestore 服务获取用户数据:
constructor(private firebaseAuth: AngularFireAuth,
private db: AngularFirestore,
private router: Router,
private firestoreService: FirestoreService) {
this.user = firebaseAuth.authState;
this.auth = this.firebaseAuth;
this.user.map(user => {
console.log('user subscribing', user);
if (isNullOrUndefined(user))
return Observable.empty();
this.userUID = user.uid;
this.userEmail = user.email;
return this.firestoreService.GetCollection('employees', true, ref => ref.where('uid', '==', user.uid)); // return Observable<any[]>
}).mergeAll().subscribe(
..working with user data
}
}
);
}
现在我试图在 RxJS 6 中重新制作它,但它不起作用:
firebaseAuth.authState.pipe(
switchMap(user => {
if (isNullOrUndefined(user)) {
return EMPTY;
}
this.userUID = user.uid;
this.userEmail = user.email;
return this.firestoreService.GetCollection('/employees', false, ref => ref.where('uid', '==', this.userUID));
}),
mergeAll()
)
.subscribe(
..working with user data
}
}
);
怎么了?