Firebase身份验证在iOS上粘贴电容器Ionic



我正在离子电容器上使用角火进行firebase身份验证。它在网络和安卓系统上运行良好,但在IOS上则不然。

当我检查应用程序网络活动时,我意识到该应用程序能够成功地从firebase获得身份验证响应,但它没有实现异步调用。

我的应用程序模块.ts

@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot({mode: 'ios'}), AppRoutingModule,
HttpClientModule,
AngularFireModule.initializeApp(environment.firebaseConfig),
AngularFireAuthModule,
AngularFirestoreModule
]})

这就是我初始化Angular fire的方式。

这是一个FirebasePlugin问题!您所需要做的就是使用最新的方法初始化AngularFire。

旧方法(错误(-

@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot({mode: 'ios'}), AppRoutingModule,
HttpClientModule,
AngularFireModule.initializeApp(environment.firebaseConfig),
AngularFireAuthModule,
AngularFirestoreModule
]})

工作方法(新(

import {getApp, initializeApp, provideFirebaseApp} from "@angular/fire/app";
import {getAuth, initializeAuth, provideAuth, indexedDBLocalPersistence} from "@angular/fire/auth";
@NgModule({
imports: [
provideFirebaseApp(() =>      initializeApp(environment.firebaseConfig)),
provideAuth(() => {
if (Capacitor.isNativePlatform()) {
return initializeAuth(getApp(), {
persistence: indexedDBLocalPersistence
})
} else {
return getAuth()
}
})]
})

修改初始化方法后,您将需要删除AngularFireAuth的使用,而是像以下那样使用:-

import {Auth, createUserWithEmailAndPassword, signInWithEmailAndPassword} from "@angular/fire/auth";
export class UserService {
constructor(private auth : Auth) {
const user: any = await signInWithEmailAndPassword(this.auth,email,password);
}

此外,您可以访问AngularFire的最新文档以更好地了解它。

最新更新