当前位置: 首页 > 知识库问答 >
问题:

升级到Angular/FIre V7和Firebase V9,适用于Ionic/Capacitor应用程序不适用于iOS

宰父阳焱
2023-03-14

我有一个Ionic 5/Angular 12/Capacitor 3移动应用程序,我正在将其升级到Firebase 9和Angular/Fire 7。使用Angular/Fire升级命令:ng update@angular/fire,它使用Firebasecompat层,该应用程序在运行ionic service的浏览器中运行良好。接下来,我创建了一个生产构建来在我的手机上进行测试ionic cap sync--prod,并构建到我的Android和iPhone上。该应用程序在Android上运行完美,但在我的iPhone、X和6S上都无法运行。稍微调试一下,显示FiRecovery没有响应,包括没有错误消息。我们甚至构建了该应用程序并推送到TestFlight,并在iPhone上看到相同的无法操作的应用程序。

有趣的是,直接在我的iPhoneX上运行ionic cap run ios-l-external-prod确实有效!

该应用程序仅使用Firebase的Firestore部分。用户身份验证在不同的后端执行,并正常工作。

相关依赖项:

"@angular/...": "^12.0.1",
"@angular/fire": "^7.1.0",
"@capacitor/...": "^3.0.0",
"@ionic/angular": "^5.6.7",
"firebase": "^9.1.0",

NgModule进口:

    provideFirebaseApp(() => initializeApp(environment.firebase)),
    provideFirestore(() => {
      const firestore = getFirestore();
      enableIndexedDbPersistence(firestore);
      return firestore;
    }),

我在iPhoneX上运行Xcode 13.0和iOS15.0.1,在iPhone6S上运行14.6。

我已经尝试过删除compat层并直接进入新的Angular/Fire 7 api for FiRecovery。但结果相同。

即使是关于我可以尝试获得更多见解的建议也会受到欢迎。

共有1个答案

壤驷华美
2023-03-14

我完全删除了Angular/Fire compat层,转换了所有FiRecovery调用以使用新的模块化SDK。当我发布我的问题时,我只部分删除了compatSDK。

现在,该应用程序完全关闭Angular/Fire V7 compat,可以在iOS和Android上运行。

不确定为什么compat层会导致iOS构建出现问题。

 类似资料:
  • 当我在Android手机上调试应用程序时,我绝对没有遇到任何错误,但在AVD上,我一开始就得到了一个NullPointerException()。我的Android设备在22 API的Lollipop(5.1.1)上运行,我的AVD在28 API的Pie(9.0)上运行。我在gradle中将最小SDK设置为21,编译SDK设置为28。 这是错误: E/AndroidRuntime:致命异常:主进程

  • 我正在使用二分模块搜索并将sha256哈希插入列表。 我有大约8,000,000项要搜索和添加,它们存储在sqlite数据库中,我想把它们读入列表,这样我就可以更快地搜索它们。 我遇到的问题是,使用二分法将项目插入列表以找到正确的插入点非常慢。完成所有8000000个项目大约需要700秒。 按升序在sqlite数据库中创建索引只需要大约90秒,然后依次将索引插入列表大约需要60秒。 问题是当我这样

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 我只是在听讲座:(这是错误消息 E/Android运行时: 致命异常: 主进程: 8893 java.lang.空指针异常: 尝试调用虚拟方法 '布尔 java.lang.字符串.contains(java.lang.CharSequence)'.java.java.java 在空对象引用上android.os.AsyncTask.access$900(AsyncTask.java:192) at

  • 列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。