Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

เริ่มต้นใช้งาน Firebase Authentication บน iOS

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

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

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

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

  1. เพิ่มการพึ่งพา Firebase Authentication ให้กับ Podfile ของโปรเจ็กต์ของคุณ:

    pod 'Firebase/Auth'
    
  2. เรียกใช้การ pod install และเปิดไฟล์ . .xcworkspace สร้างขึ้น

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

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

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

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

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

มีคำแนะนำโดยละเอียดที่ Connect your app to the Authentication emulator สำหรับข้อมูลเพิ่มเติม โปรดดูที่การ แนะนำ Local Emulator Suite

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

เริ่มต้น Firebase SDK

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

Swift

import Firebase

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

@import Firebase;

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

Swift

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

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

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

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

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

แนบผู้ฟังในเมธอด viewWillAppear ของคอนโทรลเลอร์มุมมอง:

Swift

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

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

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

และแยกผู้ฟังในเมธอด viewWillDisappear ของคอนโทรลเลอร์มุมมอง:

Swift

Auth.auth().removeStateDidChangeListener(handle!)

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

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

สมัครสมาชิกใหม่

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

Swift

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 :

Swift

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

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

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

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

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

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