Я понимаю, что этот вопрос задавался ранее, но ни одно из решений, которые я видел, не работает для меня. Я создаю страницу входа для моего приложения ioni c с использованием firebase-ui, я использую тот же подход, что и в других приложениях, и он работает там. Я установил angularFire и firebase-ui и импортировал их в мой app.module следующим образом
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { AngularFireModule } from '@angular/fire';
import { environment } from '../environments/environment';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [
AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule,
AngularFireAuthModule,
BrowserModule,
IonicModule.forRoot(),
AppRoutingModule,
],
providers: [
StatusBar,
SplashScreen,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule {}
Затем, в моем файле login.ts, я получил этот
import { Component, OnInit, NgZone, OnDestroy } from '@angular/core';
import * as firebaseui from 'firebaseui';
import * as firebase from 'firebase/app';
import { Router } from '@angular/router';
import { LoadingController } from '@ionic/angular';
import { AngularFireAuth } from '@angular/fire/auth/auth';
@Component({
selector: 'app-login',
templateUrl: './login.page.html',
styleUrls: ['./login.page.scss'],
})
export class LoginPage implements OnInit, OnDestroy {
ui: firebaseui.auth.AuthUI;
constructor(
private router: Router,
private loadingCtrl: LoadingController,
private afAuth: AngularFireAuth,
private ngZone: NgZone) { }
ngOnInit() {
const uiConfig = {
signInOptions: [
firebase.auth.GoogleAuthProvider.PROVIDER_ID,
firebase.auth.EmailAuthProvider.PROVIDER_ID
],
callbacks: {
signInSuccessWithAuthResult: this.onLoginSuccessful.bind(this)
}
};
this.ui = new firebaseui.auth.AuthUI(this.afAuth.auth); // This line gets the error
this.ui.start('#firebaseui-auth-container', uiConfig);
}
ngOnDestroy() {
this.ui.delete();
}
onLoginSuccessful(result) {
console.log('Firebase login result: ', result);
this.ngZone.run(() => {
this.router.navigateByUrl('/secciones');
});
}
}
Я использовал этот код несколько раз ранее, и я полностью озадачен, почему свойство auth не найдено. Я испробовал несколько вариантов кода, и по какой-то причине что-то не работает, я был бы признателен за любую информацию о том, почему. Конечно, я добавил конфигурацию firebase в свою среду и добавил соответствующие пакеты "firebase": "^ 7.10.0" и "firebaseui": "^ 4.4.0",