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 mình 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 cũng như các nhà cung cấp danh tính 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à đăng nhập mật khẩu vào ứng dụng của mình.
Kết nối ứng dụng của bạn với Firebase
- Cài đặt SDK Firebase .
- Trong bảng điều khiển Firebase , hãy thêm ứng dụng của bạn vào dự án Firebase.
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.
- Trong Xcode, khi dự án ứng dụng của bạn đang mở, hãy điều hướng đến File > Add Packages .
- Khi được nhắc, hãy thêm kho lưu trữ SDK nền tảng Firebase của Apple:
- Chọn thư viện Xác thực Firebase.
- Thêm cờ
-ObjC
vào phần Cờ liên kết khác trong cài đặt bản dựng của mục tiêu của bạn. - Khi hoàn tất, Xcode sẽ tự động bắt đầu phân giải và tải xuống các phần phụ thuộc của bạn ở chế độ nền.
https://github.com/firebase/firebase-ios-sdk.git
(Tùy chọn) Nguyên mẫu và thử nghiệm với Bộ mô phỏng cục bộ Firebase
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 nguyên mẫu và kiểm tra chức năng Xác thực: Bộ mô phỏng cục bộ Firebase. Nếu bạn đang quyết định giữa các kỹ thuật và nhà cung cấp xác thực, 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 cách sử dụng Quy tắc bảo mật và xác thực 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 các dịch vụ trực tiếp có thể là một ý tưởng tuyệt vời .
Trình mô phỏng xác thực là một phần của Bộ mô phỏng cục bộ, cho phép ứng dụng của bạn tương tác với nội dung và cấu hình cơ sở dữ liệu được mô phỏng, cũng như các tài nguyên dự án được mô phỏng (chức năng, cơ sở dữ liệu khác và quy tắc bảo mật) theo tùy chọn của bạn.
Sử dụng trình mô phỏng xác thực chỉ bao gồm một vài bước:
- 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 mô phỏng.
- Từ thư mục gốc của thư mục dự án cục bộ của bạn, hãy chạy
firebase emulators:start
. - Sử dụng giao diện người dùng Bộ mô phỏng cục bộ để tạo nguyên 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 Kết nối ứng dụng của bạn với trình mô phỏng xác thực . Để biết thêm thông tin, hãy xem phần giới thiệu Local Emulator Suite .
Bây giờ 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 đại biểu ứng dụng của bạn, trước tiên hãy nhập SDK Firebase:
Nhanh
import FirebaseCore
Mục tiêu-C
@import FirebaseCore;
Sau đó, trong application:didFinishLaunchingWithOptions:
khởi tạo đối tượng FirebaseApp
:
Nhanh
// Use Firebase library to configure APIs
FirebaseApp.configure()
Mục tiêu-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 chế độ xem ứng dụng của bạn cần thông tin về người dùng đã đăng nhập, hãy đính kèm trình nghe vào đối tượng FIRAuth
. 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 trình nghe trong phương thức viewWillAppear
của trình điều khiển khung nhìn:
Nhanh
handle = Auth.auth().addStateDidChangeListener { auth, user in
// ...
}
Mục tiêu-C
self.handle = [[FIRAuth auth]
addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
// ...
}];
Và tách trình nghe trong phương thức viewWillDisappear
của trình điều khiển khung nhìn:
Nhanh
Auth.auth().removeStateDidChangeListener(handle!)
Mục tiêu-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 người dùng hoàn thành biểu mẫu, hãy xác thực địa chỉ email và mật khẩu do người dùng cung cấp, sau đó chuyển chúng sang phương thức createUser
:
Nhanh
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
// ...
}
Mục tiêu-C
[[FIRAuth auth] createUserWithEmail:email
password:password
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
Đăng nhập người dùng hiện tại
Tạo 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 người dùng hoàn thành biểu mẫu, hãy gọi phương thức signIn
:
Nhanh
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
guard let strongSelf = self else { return }
// ...
}
Mục tiêu-C
[[FIRAuth auth] signInWithEmail:self->_emailField.text
password:self->_passwordField.text
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
Lấy 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 trình nghe trạng thái xác thực của bạn:
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 += " "
}
// ...
}
Mục tiêu-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 và tài khoản khách ẩn danh khác: