【发布时间】:2018-07-24 12:57:02
【问题描述】:
我是 ionic 3 和 firebase 的新手。我已经构建了一个使用电子邮件和密码来验证用户身份的应用程序。现在,每当您退出应用程序时,它都会将用户注销并且他们必须重新登录,这可能很麻烦。 我已经看到一些用户将用户凭据(电子邮件和密码)保存在 Storage (@ionic/storage) 中的提示,因此下次他们使用该应用程序时,它会自动登录。 这是解决这个问题的正确方法吗?如果是这样,我可以看看和例子吗?任何帮助都会很棒。
【问题讨论】:
-
永远不要将用户的凭据保存在设备上。您是否使用
onAuthStateChanged来检测用户已登录? -
我使用
onAuthStateChanged来获取当前登录的用户,它看起来像:firebase.auth().onAuthStateChanged(function(user) { if (user) { this.navCtrl.setRoot(LoginPage); } else { // No user is signed in. } }); -
然而,这个从来没有解决过的问题对我没有用。我已经多次构建到 ios 来测试这一点,每当我登录然后关闭应用程序时,
navCtrl永远不会通过身份验证,用户必须再次登录。有没有更简单的方法来做到这一点? -
在某些情况下,
localStorage在 iOS 设备的 ionic 低内存中没有持久化。 Firebase Auth 正在努力迁移到indexedDB,因为它更可靠。您需要调查此问题的根本原因。尝试将数据保存在localStorage中,然后重新启动应用程序。如果数据丢失,那么这就是问题所在。您可以尝试将数据备份到indexedDB或其他更持久/可靠的存储中,然后在应用启动时将其复制回localStorage。在 Firebase Auth 修复此问题之前,您可以使用它。
标签: firebase firebase-authentication ionic3 ionic-storage