我开发了一个连接到 firebase 后端的 ionic cordova 应用程序。它非常适合 Android 应用程序。
当我将其构建到 ios 并使用 XCode iPhone 模拟器运行时(例如:iPhone 12、13、14、15),它运行良好。
但是在iPad Air(第5代)等iPAD设备上运行后,它仅响应无效的登录凭据,对成功的用户凭据没有任何响应。
这里是我的包json文件。
"dependencies": {
"@angular/animations": "^16.0.0",
"@angular/cdk": "^16.0.0",
"@angular/common": "^16.0.0",
"@angular/compiler": "^16.0.0",
"@angular/core": "^16.0.0",
"@angular/fire": "^16.0.0",
"firebase": "^9.7.0",
...........................
}
应用程序组件.ts
const app = initializeApp(environment.firebaseConfig);
console.log('ios => ', this.platform.is('ios'));
console.log('hybrid => ', this.platform.is('hybrid'));
if (this.platform.is('ios')) {
initializeAuth(app, {
persistence: indexedDBLocalPersistence
});
}
LoginService.ts
this.angularFireAuth
.signInWithEmailAndPassword(email, password)
.then(res => {
console.log('Login success => ', res);
...............
....................
我尝试了不同的解决方案,例如“降级firebase版本”等。但它没有解决iPad设备的这个问题。
以前有人遇到过这个问题吗?请帮忙!
我也遇到同样的问题,找到解决办法了吗?
loginUser(value: any) {
return new Promise<any>((resolve, reject) => {
this.ngFireAuth
.signInWithEmailAndPassword(value.email, value.password)
.then(
(res) => resolve(res),
(err) => reject(err)
);
});
}
控制台日志没有显示任何内容,没有收到错误或响应
我通过以下更改解决了这个问题。
首先,我将离子科尔多瓦项目转换为离子电容器项目。 (Angular v17.0.2,@angular/fire v17.0.1)
更新登录方法如下。
LoginService.ts
import {Auth,signInWithEmailAndPassword} from '@angular/fire/auth';
constructor(private auth: Auth,
.................
async login(email: string, password: string) {
try {
const res = await signInWithEmailAndPassword(this.auth, email, password);
if (res && res.user && res.user.refreshToken) {
.........................
}
} catch (e: any) {
.........................
}
}