Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

เริ่มต้นใช้งานการตรวจสอบสิทธิ์ Firebase บนแพลตฟอร์ม Apple

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

คุณสามารถใช้ Firebase Authentication เพื่ออนุญาตให้ผู้ใช้ลงชื่อเข้าใช้แอปของคุณโดยใช้วิธีการลงชื่อเข้าใช้ตั้งแต่หนึ่งวิธีขึ้นไป รวมถึงการลงชื่อเข้าใช้ที่อยู่อีเมลและรหัสผ่าน และผู้ให้บริการข้อมูลประจำตัวแบบรวมศูนย์ เช่น Google Sign-in และ Facebook Login บทช่วยสอนนี้ช่วยให้คุณเริ่มต้นใช้งาน Firebase Authentication โดยแสดงวิธีเพิ่มที่อยู่อีเมลและรหัสผ่านในการลงชื่อเข้าใช้แอปของคุณ

เชื่อมต่อแอปของคุณกับ Firebase

  1. ติดตั้ง Firebase SDK
  2. ใน คอนโซล Firebase ให้เพิ่มแอปของคุณในโครงการ Firebase

เพิ่มการตรวจสอบสิทธิ์ Firebase ในแอปของคุณ

ใช้ Swift Package Manager เพื่อติดตั้งและจัดการการอ้างอิง Firebase

  1. ใน Xcode เมื่อโปรเจ็กต์แอปของคุณเปิดอยู่ ให้ไปที่ File > Add Packages
  2. เมื่อได้รับแจ้ง ให้เพิ่มที่เก็บ Firebase Apple platforms SDK:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. เลือกไลบรารีการรับรองความถูกต้องของ Firebase
  5. เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขและดาวน์โหลดการอ้างอิงของคุณโดยอัตโนมัติในเบื้องหลัง

(ไม่บังคับ) สร้างต้นแบบและทดสอบด้วย Firebase Local Emulator Suite

ก่อนที่จะพูดถึงวิธีที่แอปตรวจสอบสิทธิ์ผู้ใช้ ขอแนะนำชุดเครื่องมือที่คุณสามารถใช้เพื่อสร้างต้นแบบและทดสอบฟังก์ชันการตรวจสอบสิทธิ์: Firebase Local Emulator Suite หากคุณกำลังตัดสินใจเลือกเทคนิคการตรวจสอบสิทธิ์และผู้ให้บริการ การลองใช้โมเดลข้อมูลต่างๆ กับข้อมูลสาธารณะและข้อมูลส่วนตัวโดยใช้กฎความปลอดภัยการตรวจสอบสิทธิ์และ Firebase หรือการออกแบบ UI การลงชื่อเข้าใช้ต้นแบบ ความสามารถในการทำงานภายในเครื่องโดยไม่ต้องใช้บริการที่ใช้งานอยู่อาจเป็นแนวคิดที่ดี .

ตัวจำลองการตรวจสอบความถูกต้องเป็นส่วนหนึ่งของ Local Emulator Suite ซึ่งช่วยให้แอปของคุณสามารถโต้ตอบกับเนื้อหาและการกำหนดค่าของฐานข้อมูลที่จำลองได้ ตลอดจนเลือกทรัพยากรโครงการจำลองของคุณ (ฟังก์ชัน ฐานข้อมูลอื่นๆ และกฎความปลอดภัย)

การใช้โปรแกรมจำลองการตรวจสอบสิทธิ์เกี่ยวข้องกับขั้นตอนเพียงไม่กี่ขั้นตอน:

  1. การเพิ่มบรรทัดโค้ดในการกำหนดค่าการทดสอบของแอปเพื่อเชื่อมต่อกับโปรแกรมจำลอง
  2. จากรูทของไดเร็กทอรีโปรเจ็กต์ในเครื่องของคุณ ให้รัน firebase emulators:start
  3. การใช้ Local Emulator Suite UI สำหรับการสร้างต้นแบบแบบโต้ตอบ หรือ REST API ของโปรแกรมจำลองการรับรองความถูกต้องสำหรับการทดสอบแบบไม่โต้ตอบ

คำแนะนำโดยละเอียดมีอยู่ที่ เชื่อมต่อแอปของคุณกับโปรแกรมจำลองการตรวจสอบสิทธิ์ สำหรับข้อมูลเพิ่มเติม โปรดดู บทนำ Local Emulator Suite

ตอนนี้เรามาดำเนินการตรวจสอบสิทธิ์ผู้ใช้กันต่อ

เริ่มต้น Firebase SDK

ในผู้รับมอบสิทธิ์แอปของคุณ ให้นำเข้า Firebase SDK ก่อน:

สวิฟต์

import FirebaseCore

วัตถุประสงค์-C

@import FirebaseCore;

จากนั้น ใน application:didFinishLaunchingWithOptions: ให้เริ่มต้นวัตถุ FirebaseApp :

สวิฟต์

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

วัตถุประสงค์-C

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

ฟังสถานะการรับรองความถูกต้อง

สำหรับแต่ละมุมมองของแอปที่ต้องการข้อมูลเกี่ยวกับผู้ใช้ที่ลงชื่อเข้าใช้ ให้แนบ Listener กับวัตถุ FIRAuth ผู้ฟังนี้จะถูกเรียกเมื่อใดก็ตามที่สถานะการลงชื่อเข้าใช้ของผู้ใช้เปลี่ยนไป

แนบฟังในเมธอด viewWillAppear ของตัวควบคุมมุมมอง:

สวิฟต์

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

วัตถุประสงค์-C

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

และแยกฟังในเมธอด viewWillDisappear ของตัวควบคุมมุมมอง:

สวิฟต์

Auth.auth().removeStateDidChangeListener(handle!)

วัตถุประสงค์-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

ลงทะเบียนผู้ใช้ใหม่

สร้างแบบฟอร์มที่อนุญาตให้ผู้ใช้ใหม่ลงทะเบียนกับแอปของคุณโดยใช้ที่อยู่อีเมลและรหัสผ่าน เมื่อผู้ใช้กรอกแบบฟอร์มแล้ว ให้ตรวจสอบที่อยู่อีเมลและรหัสผ่านที่ผู้ใช้ให้มา จากนั้นส่งต่อไปยังเมธอด createUser :

สวิฟต์

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

วัตถุประสงค์-C

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

ลงชื่อเข้าใช้ผู้ใช้ที่มีอยู่

สร้างแบบฟอร์มที่อนุญาตให้ผู้ใช้ปัจจุบันลงชื่อเข้าใช้โดยใช้ที่อยู่อีเมลและรหัสผ่าน เมื่อผู้ใช้กรอกแบบฟอร์ม ให้เรียกวิธีการ signIn ใช้:

สวิฟต์

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

วัตถุประสงค์-C

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

รับข้อมูลผู้ใช้

หลังจากที่ผู้ใช้ลงชื่อเข้าใช้สำเร็จ คุณจะได้รับข้อมูลเกี่ยวกับผู้ใช้ ตัวอย่างเช่น ใน การฟังสถานะการรับรองความถูกต้อง ของคุณ :

สวิฟต์

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 += " "
  }
  // ...
}

วัตถุประสงค์-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;
  // ...
}

ขั้นตอนถัดไป

เรียนรู้วิธีเพิ่มการสนับสนุนสำหรับผู้ให้บริการข้อมูลประจำตัวรายอื่นและบัญชีแขกที่ไม่ระบุตัวตน: