Swift 和 Touch ID with Firebase

Swift and Touch ID with Firebase

我有兴趣将 Touch ID 选项添加到我的应用程序中。我找到了许多关于如何实现它以及如何处理错误的 SO 帖子和其他文章。我的问题是,如果用户登录,然后转到首选项 VC 并(如果设备支持)启用 Touch ID……如何从 Firebase 检索用户电子邮件和密码……或者存储它?

我可能是错的,但我无法想象 Firebase 会允许我提取用户密码。那么,我是否可以将 VC 中登录的密码存储在一个常量中,并将其从 VC 传递到 VC 以防万一用户想要启用 Touch ID?

这似乎也不是一个好选择..

编辑

我想澄清一下我的问题。

最初在我的应用程序中,用户使用电子邮件和密码使用 Firebase 登录应用程序。稍后如果用户想要 he/she 可以启用 Touch ID,而不是键入 johnSmith@email.com 和 abc123 它知道这个 phone 用户是 johnSmith@email.com 并且密码是abc123。

我的问题是:如何找回用户的电子邮件和密码?我的数据库中没有包含电子邮件列表的 child,也没有密码列表。

我唯一能想到的获取用户的方法如下

 let user = FIRAuth.auth()?.currentUser

但这足以用于 Touch ID 登录吗?那只是一个随机字符串,而不是 his/her 电子邮件

我如何获得密码?

只要 Firebase 不支持 TouchId,您就必须自己管理用户名和密码组合。当 he/she 启用 Touch Id 并自行存储 username/pw 时,您必须向用户询问一次用户名和密码。

存储敏感信息的方法是使用 Keychain,here 是 Apple 提供的关于如何做到这一点的示例项目。

下次通过 Touch Id 确认用户登录时,您从钥匙串中提取 username/pw 并验证用户。