Catch up on everthing we announced at this year's Firebase Summit. Learn more

Bắt đầu với Xác thực Firebase trên Nền tảng Apple

Bạn có thể sử dụng Xác thực Firebase để cho phép người dùng đăng nhập vào ứng dụng của bạn bằng một hoặc nhiều phương thức đăng nhập, bao gồm đăng nhập bằng địa chỉ email và mật khẩu và các nhà cung cấp danh tính được liên kết như Đăng nhập bằng Google và Đăng nhập Facebook. Hướng dẫn này giúp bạn bắt đầu với Xác thực Firebase bằng cách chỉ cho bạn cách thêm địa chỉ email và mật khẩu đăng nhập vào ứng dụng của bạn.

Kết nối ứng dụng của bạn với Firebase

  1. Cài đặt căn cứ hỏa lực SDK .
  2. Trong căn cứ hỏa lực console , thêm ứng dụng của bạn để dự án căn cứ hỏa lực của bạn.

Thêm Xác thực Firebase vào ứng dụng của bạn

Sử dụng Trình quản lý gói Swift để cài đặt và quản lý các phần phụ thuộc của Firebase.

  1. Trong Xcode, với dự án ứng dụng của bạn mở, điều hướng tới File> Swift gói> Thêm gói phụ thuộc.
  2. Khi được nhắc, hãy thêm kho lưu trữ SDK nền tảng Apple Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Chọn thư viện Xác thực Firebase.
  5. Khi hoàn tất, Xcode sẽ tự động bắt đầu giải quyết và tải xuống các phần phụ thuộc của bạn trong nền.

(Tùy chọn) Nguyên mẫu và thử nghiệm với Firebase Local Emulator Suite

Trước khi nói về cách ứng dụng của bạn xác thực người dùng, hãy giới thiệu một bộ công cụ bạn có thể sử dụng để tạo mẫu và thử nghiệm chức năng Xác thực: Firebase Local Emulator Suite. Nếu bạn đang quyết định giữa các kỹ thuật xác thực và nhà cung cấp, hãy thử các mô hình dữ liệu khác nhau với dữ liệu công khai và riêng tư bằng Quy tắc xác thực và bảo mật Firebase hoặc tạo mẫu thiết kế giao diện người dùng đăng nhập, có thể làm việc cục bộ mà không cần triển khai dịch vụ trực tiếp có thể là một ý tưởng tuyệt vời .

Trình giả lập Authentication là một phần của Local Emulator Suite, cho phép ứng dụng của bạn tương tác với cấu hình và nội dung cơ sở dữ liệu được mô phỏng, cũng như tùy chọn các tài nguyên dự án được mô phỏng của bạn (các chức năng, cơ sở dữ liệu khác và quy tắc bảo mật).

Sử dụng trình giả lập Xác thực chỉ bao gồm một vài bước:

  1. Thêm một dòng mã vào cấu hình thử nghiệm của ứng dụng để kết nối với trình giả lập.
  2. Từ thư mục gốc của thư mục dự án địa phương của bạn, chạy firebase emulators:start .
  3. Sử dụng Giao diện người dùng Bộ mô phỏng cục bộ để tạo mẫu tương tác hoặc API REST của trình mô phỏng xác thực để thử nghiệm không tương tác.

Hướng dẫn chi tiết có sẵn tại Connect ứng dụng của bạn để giả lập xác thực . Để biết thêm thông tin, vui lòng xem giới thiệu địa phương Emulator Suite .

Bây giờ chúng ta hãy tiếp tục với cách xác thực người dùng.

Khởi tạo SDK Firebase

Trong ủy quyền ứng dụng của bạn, trước tiên hãy nhập SDK Firebase:

Nhanh

import Firebase

Objective-C

@import Firebase;

Sau đó, trong application:didFinishLaunchingWithOptions: phương pháp, khởi FirebaseApp đối tượng:

Nhanh

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

Objective-C

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

Lắng nghe trạng thái xác thực

Đối với mỗi quan điểm của ứng dụng của bạn cần thông tin về người dùng đăng nhập, đính kèm một người nghe đến FIRAuth đối tượng. Trình nghe này được gọi bất cứ khi nào trạng thái đăng nhập của người dùng thay đổi.

Đính kèm người nghe trong bộ điều khiển quan điểm của viewWillAppear phương pháp:

Nhanh

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

Objective-C

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

Và tách người nghe trong bộ điều khiển quan điểm của viewWillDisappear phương pháp:

Nhanh

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

Đăng ký người dùng mới

Tạo biểu mẫu cho phép người dùng mới đăng ký ứng dụng của bạn bằng địa chỉ email và mật khẩu của họ. Khi một người dùng hoàn thành hình thức, xác nhận địa chỉ email và mật khẩu được cung cấp bởi người sử dụng, sau đó vượt qua họ đến createUser phương pháp:

Nhanh

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) {
  // ...
}];

Đăng nhập người dùng hiện có

Tạo một biểu mẫu cho phép người dùng hiện tại đăng nhập bằng địa chỉ email và mật khẩu của họ. Khi một người dùng hoàn thành mẫu đơn, gọi signIn phương pháp:

Nhanh

Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
  guard let strongSelf = self else { return }
  // ...
}

Objective-C

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

Nhận thông tin người dùng

Sau khi người dùng đăng nhập thành công, bạn có thể nhận được thông tin về người dùng đó. Ví dụ, trong bạn nghe trạng thái xác thực :

Nhanh

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
  var multiFactorString = "MultiFactor: "
  for info in user.multiFactor.enrolledFactors {
    multiFactorString += info.displayName ?? "[DispayName]"
    multiFactorString += " "
  }
  // ...
}

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 *email = user.email;
  NSString *uid = user.uid;
  NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
  for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
    [multiFactorString appendString:info.displayName];
    [multiFactorString appendString:@" "];
  }
  NSURL *photoURL = user.photoURL;
  // ...
}

Bước tiếp theo

Tìm hiểu cách thêm hỗ trợ cho các nhà cung cấp danh tính khác và tài khoản khách ẩn danh: