【问题标题】:How do I use Firebase Authentication using multiple view controllers?如何使用多个视图控制器使用 Firebase 身份验证?
【发布时间】:2018-09-03 05:56:46
【问题描述】:

我正在为Firebase 添加创建新用户方法。我已经完成了SignUp Auth 过程。但是,当用户创建新帐户时。如果我有多个ViewControllers,我该怎么办?

例如,

第一个SignUpViewController - 要求用户输入他们的电子邮件地址。

当用户点击下一步时。然后是另一个ViewController

SecondViewControlle - 要求用户输入姓名并创建密码。

在此之后,用户会看到一个欢迎页面,其中包含他们提交的姓名。 (欢迎使用“应用名称”名称)。单击下一步后,它将进入主 UI。

当我有多个ViewController 时,如何实现Auth.auth().CreateUserwith func?有没有办法使用两个不同的ViewControllers 保存电子邮件和密码?

更新**

我添加了下面建议的以下代码,但是每次我单击下一步输入您的“电子邮件”视图控制器时,应用程序都会崩溃。我收到了这个警告。有谁知道我做错了什么?其余代码似乎工作正常。这是一个屏幕截图。

【问题讨论】:

  • 创建一个Singleton Class并将用户的帐户信息保存在其中并逐个处理,然后在最后一个控制器中使用您在Singleton Class中的信息实现Firebase注册方法。成功登录后向他显示欢迎屏幕。或者你也可以使用Dictionary
  • 感谢您的快速回复。我会试试这个!
  • 嘿!您是否尝试过以下解决方案?
  • 我还没有,但我一定会让你知道的!
  • 实际上我投了反对票,所以我以为是你。我只是想知道答案有什么问题。但无论如何.. ????

标签: swift firebase firebase-authentication


【解决方案1】:

您可以将所有信息保存在Dictionary 中,并在SignUp 时使用。在你的AppDelegate 类中:

/// Instance of AppDelegate
static let shared: AppDelegate = UIApplication.shared.delegate as! AppDelegate

/// Dictionary for user information
var userInformation: Dictionary<String, Any> = [:]

在电子邮件屏幕上 - 单击下一步按钮

/// #1. Validate the email address
/// #2. Save it in Dictionary
AppDelegate.shared.userInformation["email"] = "xyz@gmail.com" or tFEmail.text.lowercased()

然后在名称和密码屏幕上

AppDelegate.shared.userInformation["name"] = "xyz" or tFName.text
AppDelegate.shared.userInformation["password"] = "xxxxxxx" or tFPassword.text

现在在最后一个屏幕 - 点击注册按钮,您可以使用所有这些信息

let email = AppDelegate.shared.userInformation["email"]
let name = AppDelegate.shared.userInformation["name"]
let password = AppDelegate.shared.userInformation["password"]

实现 Firebase SignUp 方法并在成功登录后显示欢迎屏幕。

【讨论】:

  • 抱歉,回复晚了。我更新了我的问题,并在尝试了您的代码后收到了新警告。除了 App Delegate 之外,一切似乎都正常工作。我在上面添加了一个屏幕截图。我错过了什么吗?
  • 嘿,它应该是 'UIApplication.shared.delegate' 抱歉,这是我的拼写错误。我也更新了我的答案。
  • 太棒了!这解决了这个问题,谢谢队友。我现在确实还有一个问题,我认为这将永远解决它。我是更新我的问题还是提出一个全新的问题?抱歉,我还是 stackoverflow 的新手。
  • 你应该问一个不同的问题。
猜你喜欢
  • 1970-01-01
  • 2016-03-04
  • 2010-10-17
  • 1970-01-01
  • 2023-03-15
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
相关资源
最近更新 更多