ทริกเกอร์การตรวจสอบสิทธิ์ Firebase

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

ดูตัวอย่างเพิ่มเติมของ Use Case ได้ที่ฉันจะใช้ Cloud Functions ทำอะไรได้บ้าง

ทริกเกอร์ฟังก์ชันในการสร้างผู้ใช้

คุณสร้างฟังก์ชันที่ทริกเกอร์เมื่อสร้างผู้ใช้ Firebase ได้โดยใช้เครื่องจัดการเหตุการณ์ functions.auth.user().onCreate() ดังนี้

exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => {
  // ...
});

บัญชี Firebase จะทริกเกอร์เหตุการณ์การสร้างผู้ใช้สำหรับ Cloud Functions ในกรณีต่อไปนี้

  • ผู้ใช้สร้างบัญชีอีเมลและรหัสผ่าน
  • ผู้ใช้จะลงชื่อเข้าใช้เป็นครั้งแรกโดยใช้ผู้ให้บริการข้อมูลประจำตัวแบบรวมศูนย์
  • นักพัฒนาซอฟต์แวร์สร้างบัญชีโดยใช้ Firebase Admin SDK
  • ผู้ใช้ลงชื่อเข้าใช้ในเซสชันการตรวจสอบสิทธิ์ใหม่แบบไม่ระบุชื่อเป็นครั้งแรก

ระบบจะไม่ทริกเกอร์เหตุการณ์ Cloud Functions เมื่อผู้ใช้ลงชื่อเข้าใช้เป็นครั้งแรกด้วยโทเค็นที่กำหนดเอง

เข้าถึงแอตทริบิวต์ผู้ใช้

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

const email = user.email; // The email of the user.
const displayName = user.displayName; // The display name of the user.

เรียกใช้ฟังก์ชันเมื่อมีการลบผู้ใช้

คุณสามารถตอบกลับเหตุการณ์การลบผู้ใช้ได้เช่นเดียวกับที่คุณทริกเกอร์ฟังก์ชันในการสร้างผู้ใช้ ใช้เครื่องจัดการเหตุการณ์ functions.auth.user().onDelete() ดังที่แสดงด้านล่างนี้

exports.sendByeEmail = functions.auth.user().onDelete((user) => {
  // ...
});

ทริกเกอร์ฟังก์ชันการบล็อก

หากอัปเกรดเป็นการตรวจสอบสิทธิ์ Firebase ด้วย Identity Platform แล้ว คุณจะขยายการตรวจสอบสิทธิ์ Firebase ได้โดยใช้การบล็อก Cloud Functions

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