带有firebase身份验证的Ionic3应用程序会在24小时后自动注销用户(登录不会持续)

带有firebase身份验证的Ionic3应用程序会在24小时后自动注销用户(登录不会持续),firebase,authentication,firebase-authentication,ionic3,angularfire2,Firebase,Authentication,Firebase Authentication,Ionic3,Angularfire2,我已经使用ionic3和firebase javascript angularfire2身份验证发布了一些商业android和ios应用程序。我开始收到用户投诉,用户在一段时间后不得不重新登录。一段时间后(感觉应用程序中的活动时间超过24小时),用户将注销。大多数投诉都与IOS应用程序有关。而其他一些ios用户则报告称已数周不活动,仍需登录同一应用程序。这些用例看起来是随机的,也许是,我在这里添加它们只是为了完整 根据文档,我使用的代码非常简单 this.afAuth.auth.setP

我已经使用ionic3和firebase javascript angularfire2身份验证发布了一些商业android和ios应用程序。我开始收到用户投诉,用户在一段时间后不得不重新登录。一段时间后(感觉应用程序中的活动时间超过24小时),用户将注销。大多数投诉都与IOS应用程序有关。而其他一些ios用户则报告称已数周不活动,仍需登录同一应用程序。这些用例看起来是随机的,也许是,我在这里添加它们只是为了完整

根据文档,我使用的代码非常简单

    this.afAuth.auth.setPersistence('LOCAL'); 
    this.afAuth.authState.subscribe(
        (user) => {
            if (!user) {
                //Logout
                this.logout.next({});
            }
            else {
                //Login
                this.authenticated.next(user);
            }
        }
    );
注销和验证是主题

我为解决这一问题所做的努力:

  • 将持久状态设置为本地。即使firebase现在表示不再需要此功能。firebase项目中没有任何选项可以指定会话长度
  • 将所有内容更新到最新版本
  • 根据最新的firebase文档,不需要手动刷新或存储令牌
我仍然可以尝试的东西:

  • 后台刷新插件是否有助于防止会话令牌过期?(即使firebase声称它不会过期)
  • 从firebase导入*之间是否存在冲突;还有angularFire2
离子3.9.2 firebase 4.10.1 angularfire2 5.0.0-rc.6

还有其他人在持续登录方面遇到问题吗?或者如何解决这个问题

更新:
这仅影响用户接近空间限制的IOS,请参见下面的备注

Cordova应用程序的iOS设备中存在
localStorage
不可靠(内存不足时清除)的问题。切换到Firebase版本
4.13.0
,该版本现在使用
indexedDB
存储身份验证状态。这更可靠,在这种情况下应该坚持。

亲爱的@bojeil,哇,你的速度太快了,4.13.0已经在10小时前发布了。谢谢你的快速提示。我听说过本地存储的问题。昨天,我和一位遇到重新登录问题的客户一起检查了他的iPhone7光盘使用情况。他仍然有0.5克的自由。所以它还没有满,但仍然偏高,可能会引发垃圾收集。我将测试您关于升级的提示,但可能需要一些时间才能得到一些结果。你在哪里找到了4.13.0的发行说明,我在他们的github和网站上都找不到。谢谢你的提示!找到发行说明:您确定现在支持indexDB的是js firebase 4.13.0,而不是IOS one吗?4.12.0开始支持indexDB,但在4.13.0中修复了一些问题。我指的是JS库。谢谢,我无法使用4.13.0或4.13.1进行测试,因为它会给我带来内存错误。我做了一张firebase js罚单:我可以使用4.12.1,但正如你所说的,3.13解决了一些问题。不幸的是,升级到5.0.3后,少数相同用户的问题仍然存在。有故障排除的提示吗?如果我能为这些用户了解他们被系统注销的原因,那就太好了。