问题可能是由于未正确处理订阅的注销导致的。以下是可能的解决方案:
import { Component, OnDestroy } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/auth';
import { Subscription } from 'rxjs';
@Component({
selector: 'app-example',
template: '...',
})
export class ExampleComponent implements OnDestroy {
private authSubscription: Subscription;
constructor(private afAuth: AngularFireAuth) {
this.authSubscription = this.afAuth.authState.subscribe(user => {
// 处理用户状态变化
});
}
ngOnDestroy() {
if (this.authSubscription) {
this.authSubscription.unsubscribe();
}
}
}
import { Component, OnDestroy } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/auth';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
@Component({
selector: 'app-example',
template: '...',
})
export class ExampleComponent implements OnDestroy {
private unsubscribe$ = new Subject();
constructor(private afAuth: AngularFireAuth) {
this.afAuth.authState
.pipe(takeUntil(this.unsubscribe$))
.subscribe(user => {
// 处理用户状态变化
});
}
ngOnDestroy() {
this.unsubscribe$.next();
this.unsubscribe$.complete();
}
}
使用这些解决方案,您应该能够正确处理订阅的注销,以避免出现“Angular / fire authState.subscribe不响应注销”的问题。