在 iOS 上开始使用 Firebase 身份验证

您可以使用 Firebase 身份验证允许用户使用一种或多种登录方式(包括电子邮件地址和密码登录)以及联合身份提供方(如 Google 登录和 Facebook 登录)登录到您的应用。本教程将向您展示如何向您的应用添加电子邮件地址和密码登录,以开始使用 Firebase 身份验证。

将您的应用关联至 Firebase

  1. 安装 Firebase SDK
  2. Firebase 控制台中,将您的应用添加到您的 Firebase 项目。

将 Firebase 身份验证添加到您的 Xcode 项目中

首先,确保项目的 Podfile 中存在以下依赖项:

pod 'Firebase/Core'
pod 'Firebase/Auth'

然后,运行 pod install 并打开创建的 .xcworkspace 文件。

初始化 Firebase SDK

在您的应用委托中,首先导入 Firebase SDK:

Swift

import Firebase

Objective-C

@import Firebase;

然后,在 application:didFinishLaunchingWithOptions: 方法中,初始化 FirebaseApp 对象:

Swift

// Use Firebase library to configure APIs
FirebaseApp.configure()

Objective-C

// Use Firebase library to configure APIs
[FIRApp configure];

侦听身份验证状态

对于需要有关已登录用户的信息的每个应用视图,请将侦听器附加到 FIRAuth 对象。每当用户的登录状态发生变化时,系统都会调用此侦听器。

在视图控制器的 viewWillAppear 方法中,附加侦听器:

Swift

handle = Auth.auth().addStateDidChangeListener { (auth, user) in
  // ...
}

Objective-C

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

然后,在视图控制器的 viewWillDisappear 方法中,分离侦听器:

Swift

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

注册新用户

创建一个表单,允许新用户使用他们的电子邮件地址和密码注册您的应用。当用户填好表单后,验证用户提供的电子邮件地址和密码,然后将其传递给 createUser 方法:

Swift

Auth.auth().createUser(withEmail: email, password: password) { (authResult, error) in
  // ...
}

Objective-C

[[FIRAuth auth] createUserWithEmail:email
                           password:password
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
  // ...
}];

现有用户登录

创建一个表单,允许现有用户使用他们的电子邮件地址和密码登录。当用户填好表单后,调用 signIn 方法:

Swift

Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
  // ...
}

Objective-C

[[FIRAuth auth] signInWithEmail:self->_emailField.text
                       password:self->_passwordField.text
                     completion:^(FIRAuthDataResult * _Nullable authResult,
                                  NSError * _Nullable error) {
  // ...
}];

获取用户信息

在用户成功登录后,您可以获取有关用户的信息。例如,在您的身份验证状态侦听器中:

Swift

if let user = user {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  let uid = user.uid
  let email = user.email
  let photoURL = user.photoURL
  // ...
}

Objective-C

if (user) {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  NSString *uid = user.uid;
  NSString *email = user.email;
  NSURL *photoURL = user.photoURL;
  // ...
}

后续步骤

了解如何添加对其他身份提供方和匿名访客帐号的支持:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面