gpt4 book ai didi

javascript - Firebase 身份验证在 iOS 上使用 Capacitor Ionic

转载 作者:行者123 更新时间:2023-12-02 01:40:37 25 4
gpt4 key购买 nike

我在 Ionic-Capacitor 上使用 angular-fire 进行 firebase 身份验证。它在 web 和 android 上运行良好,但在 IOS 上运行不正常。

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

我的 app.module.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 的最新文档以更好地理解它。

关于javascript - Firebase 身份验证在 iOS 上使用 Capacitor Ionic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71630326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com