AngularFireAuth 中的signInWithEmailAndPassword 仅在 ionic cordova 应用程序上的 iPad 设备上对成功的用户凭据没有响应(卡住)

问题描述 投票:0回答:2

我开发了一个连接到 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设备的这个问题。

以前有人遇到过这个问题吗?请帮忙!

javascript ionic-framework firebase-authentication angularfire
2个回答
0
投票

我也遇到同样的问题,找到解决办法了吗?

  loginUser(value: any) {
    return new Promise<any>((resolve, reject) => {
      this.ngFireAuth
        .signInWithEmailAndPassword(value.email, value.password)
        .then(
          (res) => resolve(res),
          (err) => reject(err)
        );
    });
  }

控制台日志没有显示任何内容,没有收到错误或响应


0
投票

我通过以下更改解决了这个问题。

  1. 首先,我将离子科尔多瓦项目转换为离子电容器项目。 (Angular v17.0.2,@angular/fire v17.0.1)

  2. 更新登录方法如下。

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) {
          .........................
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.