我目前正在 JavaScript 中使用 Firebase 身份驗證,并嘗試創建一個函數來注冊用戶。我需要檢查的第一步是電子郵件的可用性。無論使用還是不使用getUserByEmail()功能。如果該電子郵件未被使用,則繼續注冊步驟,否則,返回一個包含錯誤狀態和錯誤消息的對象。問題是,getUserByEmail()函數返回一個 Promise。因此,如果提供的電子郵件尚未注冊,該函數將返回錯誤。這是可以理解的,因為該函數是基于 Promise 的。但令我困擾的是語法順序,因為它是“相反的”,因為從我通常所做的來看,該try塊是執行“正確的步驟”,而該catch塊是執行“錯誤的步驟”。這是我寫的代碼:try { const findFirebaseUser = await admin.auth().getUserByEmail(email); return { status: false, message: 'Email has been used' }} catch (error) { if (error.errorInfo.code === 'auth/user-not-found') { // register step const { uid } = await admin.auth().createUser({ displayName: name, password, email, phoneNumber }); await admin.auth().setCustomUserClaims(uid, { role }); return { status: true, message: 'Success' } }}有什么辦法可以更有效地編寫步驟嗎?謝謝。
在 JavaScript 中處理 Firebase 身份驗證錯誤的有效方法
Cats萌萌
2023-10-20 15:08:44