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

2024-01-11

我正在使用 Angular-Fire 在 Ionic-Capacitor 上进行 Firebase 身份验证。它在网络和 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 的最新文档以更好地了解它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase 身份验证在 iOS 上使用 Capacitor Ionic 的相关文章

随机推荐

  • apc.按路径过滤?

    如何在 APC 操作码缓存中使用 apc filters 参数来不缓存某些路径 例如 我希望缓存对路径下的任何内容都处于活动状态 var www vhosts 并排除类似的路径 usr share psa horde 我尝试使用 apc c
  • 查找所有点对之间的欧氏距离

    我的列表中有 8 个点 我需要计算所有可能对之间的欧氏距离 我可以编写一个 for 循环并继续计算距离 但是 python numpy 其他有更好的方法 方法吗 坐标点 x1 y1 x2 y2 x3 y3 xn yn 是的 您可以使用euc
  • css 锚定 div 到页面底部

    我可能很快就会把头从墙上弹下来 我不敢相信像这样愚蠢的事情完全打败了我 因此我向你求助 Stack Overflow 寻求指导和启发 Problem 将 div 放置在页面底部 宽度为 100 位于任何类型的包装器之外 建议的解决方案 ht
  • 需要帮助使用嵌套模型的 DefaultModelBinder

    有一些相关的问题 但我找不到有效的答案 假设我有以下模型 public class EditorViewModel public Account Account get set public string SomeSimpleStuff g
  • Xcode 4 中的目标成员资格是什么

    我正在寻找 Xcode 中目标成员资格的示例 我对它的确切含义有点困惑 例如 我有两个不同的目标会员资格 myApp 和 myAppTests 如果我指定一个文件 例如 myAppFile h 作为 myAppTests 的一部分而不是 m
  • 如果提供的刻度只有 1 个结果,D3ticks() 不会返回值

    我有一个 x 轴 显示我的数据发生的日期 数据是动态的 有时我只有 1 天 2 天 n 天等的数据 这是我在 x 轴上显示日期的代码 chart x d3 time scale range 0 chart w chart xAxis d3
  • 在 Android 中以编程方式创建平行四边形 Drawable

    我正在尝试重新创建在 Ice Cream Sandwich 中看到的切换幻灯片 但不适用于 ICS 以下的 Android 版本 我现在对滑块感到满意 但是我目前使用两个平行四边形图像 一个用于其关闭状态 一个用于其打开状态 我想理想地在运
  • 在 Java 中使用 Nashorn?

    我正在阅读有关 Java 8 新功能的信息 并了解到它带有 Nashorn Javascript 引擎 有人可以解释一下为什么我会 应该在 Java 中使用 Javascript 引擎吗 它能解决什么编程问题 任何例子 谢谢 拉维 简而言之
  • Android O+:某些手机似乎缺少更改通知声音类型的选项

    再次关于Android O 上的通知声音 有些手机的 通知设置 窗口不显示声音选择按钮 甚至不显示振动按钮 这里有几个例子 三星A5 华为荣耀View 10 不是小品牌 我会说 他们在 Android 8 上使用 Gmail 应用程序 菜单
  • 一个应用程序中包含多个浏览器外应用程序

    我正在考虑一个场景 我需要创建一个 主 Silverlight 应用程序 然后为浏览器外的 Silverlight 应用程序添加 子 应用程序 场景是这样的 用户将访问游戏板网站 并选择要玩的游戏 我们打电话吧 它跳棋 他喜欢 所以他 将浏
  • 在 OmniFaces @Eager bean 中注入 @EJB 会导致“严重:没有用于注入 org.omnifaces.cdi.eager.EagerBeansRepository 的有效 EE 环境”

    Using ApplicationScoped Named Eager my EJB 注入 Statelessbeans 未正确实例化并评估为null 我有一个 ApplicationScoped ManagedBean eager tru
  • 如何使用 PDFBox 将标准字体嵌入到生成的 PDF 中

    我需要使用 Java 版 Apache PDFBox 库向 PDF A 文件添加一些文本 问题是 因为它需要是有效的 PDF A 文件 所以所有使用的字体都必须嵌入其中 我知道我可以使用 PDFBox 嵌入 TTF 字体 但我想避免必须向应
  • 如何在 MATLAB 中将字符串和矩阵写入 .txt 文件?

    我需要将数据写入 MATLAB 中的 txt 文件 我知道如何写字符串 fprintf or矩阵 dlmwrite 但我需要可以同时完成这两个任务的东西 我将在下面举一个例子 str This is the matrix mat1 23 4
  • PaintWorklet 无法在锚标记内工作

    当 Paint Worklet 放置在锚标记内时 它无法工作 示例站点 https codepen io lonekorean pen aYoJPv https codepen io lonekorean pen aYoJPv 上面的例子
  • gulp 被不规则地杀死

    我在运行 gulp 时遇到问题 因为它在任务期间会自行终止 我什么也没干 gt gulp build 11 25 34 Using gulpfile app app base frontend gulpfile js 11 25 34 St
  • GRPC服务发现

    给定一个地址GRPC http www grpc io 服务于 例如 ipv4 127 0 0 1 25000 是否有任何标准化查询或工具可以用来发现服务能够接收哪些 GRPC 请求 例如我正在寻找类似的东西 magic grpc serv
  • 使用 TCPDF 将现有 PDF 与动态生成的 PDF 合并

    我正在使用 TCPDF 生成 PDF 文档 我的要求是在动态生成的PDF的最后一页合并现有的PDF内容 到目前为止 解决您问题的最佳方法是使用FPDI https github com Setasign FPDI https github
  • 何时使用:Java 8+ 接口默认方法与抽象方法

    Java 8 允许默认实现接口中的方法 称为默认方法 http java dzone com articles introduction default methods 我很困惑什么时候会使用那种interface default meth
  • Spring Batch - 同时执行作业的多个实例

    我有一个澄清 我们是否可以同时运行一个作业的多个实例 目前 我们在任何给定时间都有一个作业实例 如果可能的话 请告诉我该怎么做 是的你可以 Spring Batch 根据 JobParameters 来区分作业 因此 如果您始终将不同的 J
  • Firebase 身份验证在 iOS 上使用 Capacitor Ionic

    我正在使用 Angular Fire 在 Ionic Capacitor 上进行 Firebase 身份验证 它在网络和 Android 上运行良好 但在 IOS 上不行 当我检查应用程序网络活动时 我意识到应用程序能够从 firebase