อันนี้เป็นทริคเล็กๆ ในการตรวจสอบว่ามี Email ในฐานข้อมูลผู้ใช้ของ Firebase หรือยัง โดยฉบับนี้จะเป็นการใช้ JavaScript ในฝั่ง Node.js นะครับ
ซึ่งตัวอย่างนี้อัพเกรดสำหรับ Web 9 เป็นต้นไป ดังนั้นหากเราเริ่มใช้ Firebase ที่อัพเดตในปี 2021 ก็ดูเป็นตัวอย่างได้เลย
ตัวอย่าง
import { getAuth, fetchSignInMethodsForEmail } from "firebase/auth";
const auth = getAuth()
const methods = await fetchSignInMethodsForEmail(auth, email)
if (methods.length > 0) {
console.log(`${email} already used.`)
} else {
console.log(`${email} is available`)
}
ซึ่งวิธีนี้ใช้ function ที่ชื่อว่า fetchSignInMethodsForEmail โดยผลที่ได้จากการเรียกใช้ function นี้จะทำให้เราได้รายการของวิธีที่ใช้ในการ Sign in ของ Email ดังกล่าวได้
โดยข้อมูลที่ได้กลับมาจะเป็น Array ของ String นั่นเอง
ซึ่งอย่างน้อยที่สุด ก็ต้องมี 1 วิธีที่ใช้กับ Email ที่มีการลงทะเบียนไว้แล้ว แต่ถ้าเกิด Array ดังกล่าว ไม่มีข้อมูลด้านในเลย หรือที่เรียกว่า length = 0 ก็หมายความว่า Email นี้ไม่มีการลงทะเบียนไว้ในฐานข้อมูลนั่นเอง
กรณีที่พบว่า Email ยังไม่ได้ถูกใช้ในการลงทะเบียนมาก่อน ก็สามารถจะอนุญาตให้ผู้ใช้ ใช้ Email นั้นได้
แต่ถ้าพบว่ามีคนใช้ลงทะเบียนไว้แล้ว ก็สามารถแสดงข้อความให้ผู้ใช้เลือก Email อื่นนั่นเอง
อ้างอิง – StackOverflow