如何通过多个视图控制器使用Firebase身份验证?

时间:2018-09-03 05:56:47

标签: swift firebase firebase-authentication

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

例如,

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

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

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

此后,将向用户显示欢迎页面,其中包含他们提交的名称。 (欢迎使用“ App Name”名称)。单击下一步后,将进入主界面。

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

更新**

我添加了以下建议的以下代码,但是,每当我单击下一步输入“电子邮件”视图控制器时,应用程序都会崩溃。我收到此警告。有人知道我做错了吗?其余代码似乎工作正常。这是截图。 enter image description here

1 个答案:

答案 0 :(得分:0)

您可以将所有信息保存在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方法,并在成功登录后显示欢迎屏幕。