return { id, ...userDetails }
выполняется перед подпиской на this.angularFirestore
.doc(userData.userDetails).valueChanges()
.
Подписка внутри подписки не очень хорошая идея, вы должны использовать другие операторы, например, switchMap, чтобы связать два вызова:
return this.dbCollectionService
.userOrganizationCollection.snapshotChanges()
.pipe(
map(res => res.map(data => data.payload.doc.data())),
map(userDatas => userDatas.filter(_ => _)),
map(userDatas => userDatas.map(this.angularFirestore.doc(userData.userDetails).valueChanges()
.pipe(map(userDetails => ({ id, ...userDetails }))))),
switchMap(userDatas$ => combineLatest(userDatas$)),
map(users => users.filter( f => f.organizationId != undefined && f.organizationId == orgId))
);