AngularFire值更改不适用于删除

AngularFire值更改不适用于删除,angular,firebase,google-cloud-firestore,angularfire2,angularfire,Angular,Firebase,Google Cloud Firestore,Angularfire2,Angularfire,我使用的是Angular 9、Firebase 7.14.3、AngularFire 6和NgRx 9 我有一个约会日历,我希望在Firestore数据库更改时自动更新,而无需刷新页面。现在它只工作了一半。在数据库中手动添加约会将自动相应地更新浏览器,而在数据库中手动删除约会则不会 在ngOnChanges中记录传入数据时,每当我手动添加约会时,它都会记录我期望的数据。它显示currentValue有新约会,而previousValue没有,但是当我删除约会时,currentValue和prev

我使用的是Angular 9、Firebase 7.14.3、AngularFire 6和NgRx 9

我有一个约会日历,我希望在Firestore数据库更改时自动更新,而无需刷新页面。现在它只工作了一半。在数据库中手动添加约会将自动相应地更新浏览器,而在数据库中手动删除约会则不会

ngOnChanges
中记录传入数据时,每当我手动添加约会时,它都会记录我期望的数据。它显示
currentValue
有新约会,而
previousValue
没有,但是当我删除约会时,
currentValue
previousValue
完全相同。它清楚地认识到数据已经更改,因为
ngOnChanges
记录到控制台,但是
currentValue
数组出于某种原因仍然显示删除的约会

我的效果是这样的:

@Effect()
loadAppointments$: Observable<Action> = this.actions$.pipe(
    ofType(appointmentsActions.LOAD_APPOINTMENTS),
    map((action: appointmentsActions.LoadAppointments) => action.payload),
    switchMap(data => {
        const { companyId, startDate, endDate } = data;
        return this.afs
            .collection('companies')
            .doc(companyId)
            .collection<Appointment>('appointments', ref => {
                return ref
                    .where('startTimeMs', '>=', startDate)
                    .where('startTimeMs', '<=', endDate);
            })
            .valueChanges()
            .pipe(
                map(
                    appointments =>
                        new appointmentsActions.LoadAppointmentsSuccess(appointments),
                ),
                catchError(error =>
                    of(new appointmentsActions.LoadAppointmentsFail(error)),
                ),
            );
    }),
);
@Effect()
loadAppoints$:Observable=此.actions$.pipe(
ofType(约会。加载约会),
map((action:appointsactions.LoadAppointments)=>action.payload),
开关映射(数据=>{
const{companyId,startDate,endDate}=数据;
把这个还给我
.收款(“公司”)
.doc(公司ID)
.collection('约会',ref=>{
返回参考
.where('starttimes','>=',startDate)

哪里('starttimes','没有足够的信息来调查这个问题。
效果
代码用于加载。不起作用的是
delete
。您需要提供代码,说明如何从组件发出
delete
调用,以及该操作的效果。此外,为什么需要
ngochanges
您有选择器?父组件和子组件是什么。无法用提供的详细信息回答此问题任命中发生的情况。LoadAppointsSuccess?没有足够的信息来调查此问题。
效果
代码用于加载。不起作用的是
删除
。您需要为h提供代码如何从组件发出
delete
调用,以及该操作的效果如何。此外,当您有选择器时,为什么需要
ngOnChanges
呢?父组件和子组件是什么?无法通过提供的详细信息回答此问题,即appointmentsActions.LoadAppointsSuccess中发生了什么?