अगर Authentication तरीकों पर पूरा होने का कॉलबैक, ऐसा NSError आर्ग्युमेंट पाता है जो शून्य नहीं है, तो कोई गड़बड़ी हुई है. अपने प्रोडक्शन कोड में गड़बड़ी ठीक करने के सही लॉजिक को लागू करने के लिए, गड़बड़ी के कोड की तुलना यहां दी गई सामान्य गड़बड़ियों और तरीके से जुड़ी गड़बड़ियों से करें.
कुछ गड़बड़ियों को उपयोगकर्ता की कार्रवाइयों से ठीक किया जा सकता है. उदाहरण के लिए, FIRAuthErrorCodeUserTokenExpired को उपयोगकर्ता के फिर से साइन इन करने से ठीक किया जा सकता है. वहीं, FIRAuthErrorCodeWrongPassword को उपयोगकर्ता से सही पासवर्ड देने के लिए कहकर ठीक किया जा सकता है.
FIRAuthErrorCodeNetworkError या FIRAuthErrorCodeTooManyRequests को छोड़कर, एक ही आर्ग्युमेंट के साथ किसी कार्रवाई को फिर से करने पर, वह कभी पूरी नहीं होगी. यह न मान लें कि सर्वर साइड पर कार्रवाई हो गई है या नहीं.
गड़बड़ियों की जांच करते समय या उन्हें लॉग करते समय, userInfo डिक्शनरी देखें.
FIRAuthErrorNameKey में क्रॉस-प्लैटफ़ॉर्म गड़बड़ी के नाम वाली स्ट्रिंग होती है. इसका इस्तेमाल गड़बड़ी की पहचान करने के लिए किया जा सकता है.
NSLocalizedDescriptionKey में गड़बड़ी की जानकारी दी गई है. यह जानकारी डेवलपर के लिए है, उपयोगकर्ता के लिए नहीं.
NSUnderlyingErrorKey में वह गड़बड़ी मौजूद होती है जिसकी वजह से समस्या हुई है. हालांकि, ऐसा तब होता है, जब कोई गड़बड़ी मौजूद हो.
ऊपर दिए गए मुख्य फ़ील्ड के अलावा, userInfo डिक्शनरी में अन्य फ़ील्ड भी हो सकते हैं. गड़बड़ियों का पता लगाने के दौरान, ये फ़ील्ड आपके काम आ सकते हैं.
सभी एपीआई तरीकों में होने वाली सामान्य गड़बड़ियों के कोड
| कोड |
मतलब |
FIRAuthErrorCodeNetworkError |
इससे पता चलता है कि कार्रवाई के दौरान नेटवर्क की कोई गड़बड़ी हुई है. |
FIRAuthErrorCodeUserNotFound |
इससे पता चलता है कि उपयोगकर्ता खाता नहीं मिला. ऐसा तब हो सकता है, जब उपयोगकर्ता खाते को मिटा दिया गया हो. |
FIRAuthErrorCodeUserTokenExpired |
इससे पता चलता है कि मौजूदा उपयोगकर्ता के टोकन की समयसीमा खत्म हो गई है. उदाहरण के लिए, उपयोगकर्ता ने किसी दूसरे डिवाइस पर खाते का पासवर्ड बदल दिया हो. आपको उपयोगकर्ता को इस डिवाइस पर फिर से साइन इन करने के लिए कहना होगा. |
FIRAuthErrorCodeTooManyRequests |
इससे पता चलता है कि कॉल करने वाले डिवाइस से Firebase Authentication सर्वर पर असामान्य संख्या में अनुरोध किए जाने के बाद, अनुरोध को ब्लॉक कर दिया गया है. कुछ देर बाद फिर से कोशिश करें. |
FIRAuthErrorCodeInvalidAPIKey |
इससे पता चलता है कि ऐप्लिकेशन को अमान्य एपीआई पासकोड के साथ कॉन्फ़िगर किया गया है. |
FIRAuthErrorCodeAppNotAuthorized |
इससे पता चलता है कि ऐप्लिकेशन को, दी गई एपीआई कुंजी के साथ Firebase से पुष्टि करने का इस्तेमाल करने की अनुमति नहीं है. Google API Console पर जाएं और क्रेडेंशियल टैब में जाकर देखें कि जिस एपीआई कुंजी का इस्तेमाल किया जा रहा है उसके लिए, आपके ऐप्लिकेशन के बंडल आईडी को अनुमति दी गई है या नहीं. |
FIRAuthErrorCodeKeychainError |
इससे पता चलता है कि कीचेन को ऐक्सेस करते समय कोई गड़बड़ी हुई है. NSError.userInfo डिक्शनरी में मौजूद NSLocalizedFailureReasonErrorKey और NSUnderlyingErrorKey फ़ील्ड में, गड़बड़ी के बारे में ज़्यादा जानकारी होगी. |
FIRAuthErrorCodeInternalError |
इससे पता चलता है कि सिस्टम में कोई गड़बड़ी हुई है. कृपया पूरे NSError ऑब्जेक्ट के साथ गड़बड़ी की शिकायत करें. |
तरीके के हिसाब से गड़बड़ी के कोड
FIRAuth
fetchProvidersForEmail:completion:
| कोड |
मतलब |
FIRAuthErrorCodeInvalidEmail |
इससे पता चलता है कि ईमेल पता गलत है. |
signInWithEmail:password:completion:
| कोड |
मतलब |
FIRAuthErrorCodeOperationNotAllowed |
इससे पता चलता है कि ईमेल और पासवर्ड वाले खाते चालू नहीं हैं. इन्हें Firebase कंसोल में चालू करें. इसके लिए, सुरक्षा > पुष्टि > साइन-इन करने का तरीका टैब पर जाएं. |
FIRAuthErrorCodeInvalidEmail |
इससे पता चलता है कि ईमेल पता गलत है. |
FIRAuthErrorCodeUserDisabled |
इससे पता चलता है कि उपयोगकर्ता का खाता बंद कर दिया गया है. |
FIRAuthErrorCodeWrongPassword |
इससे पता चलता है कि उपयोगकर्ता ने गलत पासवर्ड डालकर साइन इन करने की कोशिश की है. |
signInWithCredential:completion:
| कोड |
मतलब |
FIRAuthErrorCodeInvalidCredential |
इससे पता चलता है कि दिया गया क्रेडेंशियल अमान्य है. ऐसा तब हो सकता है, जब इसकी समयसीमा खत्म हो गई हो या यह गलत हो. |
FIRAuthErrorCodeInvalidEmail |
अगर क्रेडेंशियल EmailPasswordAuthCredential टाइप का है, तो यह बताता है कि ईमेल पता गलत है. |
FIRAuthErrorCodeOperationNotAllowed |
इससे पता चलता है कि क्रेडेंशियल के ज़रिए दिखाए गए आइडेंटिटी प्रोवाइडर वाले खाते चालू नहीं हैं. इन्हें Firebase कंसोल में चालू करें. इसके लिए, सुरक्षा > पुष्टि > साइन-इन करने का तरीका टैब पर जाएं. |
FIRAuthErrorCodeEmailAlreadyInUse |
इससे पता चलता है कि क्रेडेंशियल से पुष्टि किया गया ईमेल (जैसे कि Facebook ऐक्सेस टोकन में मौजूद ईमेल), पहले से ही किसी मौजूदा खाते में इस्तेमाल किया जा रहा है. इस साइन-इन तरीके से उस खाते की पुष्टि नहीं की जा सकती. इस उपयोगकर्ता के ईमेल के लिए fetchProvidersForEmail को कॉल करें. इसके बाद, उसे मिले साइन-इन प्रोवाइडर में से किसी एक के साथ साइन इन करने के लिए कहें. यह गड़बड़ी सिर्फ़ तब दिखेगी, जब Firebase कंसोल में "हर ईमेल पते के लिए एक खाता" सुविधा चालू होगी. इसके लिए, सुरक्षा > पुष्टि > सेटिंग टैब पर जाएं. |
FIRAuthErrorCodeUserDisabled |
इससे पता चलता है कि उपयोगकर्ता का खाता बंद कर दिया गया है. |
FIRAuthErrorCodeWrongPassword |
अगर क्रेडेंशियल EmailPasswordAuthCredential टाइप का है, तो यह कुकी बताती है कि उपयोगकर्ता ने गलत पासवर्ड डालकर साइन इन करने की कोशिश की है. |
signInAnonymouslyWithCompletion:
| कोड |
मतलब |
FIRAuthErrorCodeOperationNotAllowed |
इससे पता चलता है कि अनाम खातों की सुविधा चालू नहीं है. इन्हें Firebase कंसोल में चालू करें. इसके लिए, सुरक्षा > पुष्टि > साइन-इन करने का तरीका टैब पर जाएं. |
signInWithCustomToken:completion:
| कोड |
मतलब |
FIRAuthErrorCodeInvalidCustomToken |
इससे कस्टम टोकन की पुष्टि करने में हुई गड़बड़ी का पता चलता है. |
FIRAuthErrorCodeCustomTokenMismatch |
इससे पता चलता है कि सेवा खाता और एपीआई पासकोड, अलग-अलग प्रोजेक्ट से जुड़े हैं. |
createUserWithEmail:password:completion:
| कोड |
मतलब |
FIRAuthErrorCodeInvalidEmail |
इससे पता चलता है कि ईमेल पता गलत है. |
FIRAuthErrorCodeEmailAlreadyInUse |
इस कुकी से पता चलता है कि साइन अप करने के लिए इस्तेमाल किया गया ईमेल पता पहले से मौजूद है. fetchProvidersForEmail को कॉल करके देखें कि उपयोगकर्ता ने साइन इन करने के लिए किन तरीकों का इस्तेमाल किया है. इसके बाद, उपयोगकर्ता को इनमें से किसी एक तरीके से साइन इन करने के लिए कहें. |
FIRAuthErrorCodeOperationNotAllowed |
इससे पता चलता है कि ईमेल और पासवर्ड वाले खाते चालू नहीं हैं. इन्हें Firebase कंसोल में चालू करें. इसके लिए, सुरक्षा > पुष्टि > साइन-इन करने का तरीका टैब पर जाएं. |
FIRAuthErrorCodeWeakPassword |
इससे पता चलता है कि बहुत कमज़ोर पासवर्ड सेट करने की कोशिश की गई है. NSError.userInfo डिक्शनरी ऑब्जेक्ट में मौजूद NSLocalizedFailureReasonErrorKey फ़ील्ड में, ज़्यादा जानकारी होगी. यह जानकारी उपयोगकर्ता को दिखाई जा सकती है. |
signOut:
| कोड |
मतलब |
FIRAuthErrorCodeKeychainError |
इससे पता चलता है कि कीचेन को ऐक्सेस करते समय कोई गड़बड़ी हुई है. NSError.userInfo डिक्शनरी में मौजूद NSLocalizedFailureReasonErrorKey और NSUnderlyingErrorKey फ़ील्ड में, गड़बड़ी के बारे में ज़्यादा जानकारी होगी. |
FIRUser
FIRUser ऑपरेशन के लिए सामान्य गड़बड़ियां
| कोड |
मतलब |
FIRAuthErrorCodeInvalidUserToken |
इससे पता चलता है कि साइन इन किए हुए उपयोगकर्ता का रीफ़्रेश टोकन अमान्य है. इस टोकन में सेशन की जानकारी होती है. आपको उपयोगकर्ता को इस डिवाइस पर फिर से साइन इन करने के लिए कहना होगा. |
FIRAuthErrorCodeUserDisabled |
इससे पता चलता है कि उपयोगकर्ता का खाता बंद कर दिया गया है. इसे तब तक इस्तेमाल नहीं किया जा सकता, जब तक Firebase console में इसे फिर से चालू न कर दिया जाए (सुरक्षा > पुष्टि > उपयोगकर्ता टैब पर जाएं). |
reauthenticateWithCredential:completion:
| कोड |
मतलब |
FIRAuthErrorCodeInvalidCredential |
इससे पता चलता है कि दिया गया क्रेडेंशियल अमान्य है. ऐसा तब हो सकता है, जब इसकी समयसीमा खत्म हो गई हो या यह गलत हो. |
FIRAuthErrorCodeInvalidEmail |
अगर क्रेडेंशियल EmailPasswordAuthCredential टाइप का है, तो यह बताता है कि ईमेल पता गलत है. |
FIRAuthErrorCodeWrongPassword |
अगर क्रेडेंशियल EmailPasswordAuthCredential टाइप का है, तो इससे पता चलता है कि उपयोगकर्ता ने गलत पासवर्ड डालकर फिर से पुष्टि करने की कोशिश की है. |
FIRAuthErrorCodeUserMismatch |
इससे पता चलता है कि किसी ऐसे उपयोगकर्ता के साथ फिर से पुष्टि करने की कोशिश की गई है जो मौजूदा उपयोगकर्ता नहीं है. |
FIRAuthErrorCodeOperationNotAllowed |
इससे पता चलता है कि क्रेडेंशियल के ज़रिए दिखाए गए आइडेंटिटी प्रोवाइडर वाले खाते चालू नहीं हैं. इन्हें Firebase कंसोल में चालू करें. इसके लिए, सुरक्षा > पुष्टि पर जाएं. |
FIRAuthErrorCodeEmailAlreadyInUse |
इससे पता चलता है कि क्रेडेंशियल से पुष्टि किया गया ईमेल पता (जैसे कि Facebook ऐक्सेस टोकन में मौजूद ईमेल पता), पहले से ही किसी मौजूदा खाते में इस्तेमाल किया जा रहा है. इस साइन-इन तरीके से, उस खाते की फिर से पुष्टि नहीं की जा सकती. इस उपयोगकर्ता के ईमेल के लिए fetchProvidersForEmail को कॉल करें. इसके बाद, उसे मिले साइन-इन प्रोवाइडर में से किसी एक के साथ साइन इन करने के लिए कहें. यह गड़बड़ी सिर्फ़ तब दिखेगी, जब Firebase कंसोल में "हर ईमेल पते के लिए एक खाता" सुविधा चालू होगी. इसके लिए, सुरक्षा > पुष्टि > सेटिंग टैब पर जाएं. |
FIRAuthErrorCodeUserDisabled |
इससे पता चलता है कि उपयोगकर्ता का खाता बंद कर दिया गया है. |
updateEmail:completion:
| कोड |
मतलब |
FIRAuthErrorCodeEmailAlreadyInUse |
इससे पता चलता है कि इस ईमेल पते का इस्तेमाल पहले से ही किसी दूसरे खाते में हो रहा है. |
FIRAuthErrorCodeInvalidEmail |
इससे पता चलता है कि ईमेल पता गलत है. |
FIRAuthErrorCodeRequiresRecentLogin |
किसी उपयोगकर्ता का ईमेल पता अपडेट करना, सुरक्षा से जुड़ी एक संवेदनशील कार्रवाई है. इसके लिए, उपयोगकर्ता को हाल ही में लॉग इन करना होगा. इस गड़बड़ी का मतलब है कि उपयोगकर्ता ने हाल ही में साइन इन नहीं किया है. इस समस्या को हल करने के लिए, FIRUser पर reauthenticateWithCredential:completion: को लागू करके, उपयोगकर्ता की फिर से पुष्टि करें. |
updatePassword:completion:
| कोड |
मतलब |
FIRAuthErrorCodeOperationNotAllowed |
इससे पता चलता है कि एडमिन ने, तय किए गए आइडेंटिटी प्रोवाइडर की मदद से साइन इन करने की सुविधा बंद कर दी है. |
FIRAuthErrorCodeRequiresRecentLogin |
किसी उपयोगकर्ता का पासवर्ड अपडेट करना, सुरक्षा से जुड़ी एक संवेदनशील कार्रवाई है. इसके लिए, उपयोगकर्ता को हाल ही में लॉग इन करना होगा. इस गड़बड़ी का मतलब है कि उपयोगकर्ता ने हाल ही में साइन इन नहीं किया है. इस समस्या को हल करने के लिए, FIRUser पर reauthenticateWithCredential:completion: को लागू करके, उपयोगकर्ता की फिर से पुष्टि करें. |
FIRAuthErrorCodeWeakPassword |
इससे पता चलता है कि बहुत कमज़ोर पासवर्ड सेट करने की कोशिश की गई है. NSError.userInfo डिक्शनरी ऑब्जेक्ट में मौजूद NSLocalizedFailureReasonErrorKey फ़ील्ड में, ज़्यादा जानकारी होगी. यह जानकारी उपयोगकर्ता को दिखाई जा सकती है. |
linkWithCredential:completion:
| कोड |
मतलब |
FIRAuthErrorCodeProviderAlreadyLinked |
इससे पता चलता है कि स्वास्थ्य सेवा देने वाले किसी ऐसे व्यक्ति या संगठन को लिंक करने की कोशिश की गई है जिसे पहले ही इस खाते से लिंक किया जा चुका है. |
FIRAuthErrorCodeCredentialAlreadyInUse |
इससे पता चलता है कि किसी ऐसे क्रेडेंशियल को लिंक करने की कोशिश की गई है जो पहले से ही किसी दूसरे Firebase खाते से लिंक है. |
FIRAuthErrorCodeOperationNotAllowed |
इससे पता चलता है कि क्रेडेंशियल के ज़रिए दिखाए गए आइडेंटिटी प्रोवाइडर वाले खाते चालू नहीं हैं. इन्हें Firebase कंसोल में चालू करें. इसके लिए, सुरक्षा > पुष्टि > साइन-इन करने का तरीका टैब पर जाएं. |
यह तरीका, FIRUser पर updateEmail:completion: और updatePassword:completion: से जुड़े गड़बड़ी कोड भी दिखा सकता है.
unlinkFromProvider:completion:
| कोड |
मतलब |
FIRAuthErrorCodeNoSuchProvider |
इससे पता चलता है कि किसी ऐसी कंपनी से खाते को अनलिंक करने की कोशिश की गई है जो खाते से लिंक नहीं है. |
FIRAuthErrorCodeRequiresRecentLogin |
ईमेल पते को अपडेट करना, सुरक्षा से जुड़ी एक संवेदनशील कार्रवाई है. इसके लिए, उपयोगकर्ता को हाल ही में लॉग इन करना होगा. इस गड़बड़ी का मतलब है कि उपयोगकर्ता ने हाल ही में साइन इन नहीं किया है. इस समस्या को हल करने के लिए, FIRUser पर reauthenticateWithCredential:completion: को लागू करके, उपयोगकर्ता की फिर से पुष्टि करें. |
sendEmailVerificationWithCompletion:
| कोड |
मतलब |
FIRAuthErrorCodeUserNotFound |
इससे पता चलता है कि उपयोगकर्ता खाता नहीं मिला. |
deleteWithCompletion:
| कोड |
मतलब |
FIRAuthErrorCodeRequiresRecentLogin |
किसी उपयोगकर्ता खाते को मिटाना, सुरक्षा से जुड़ी एक संवेदनशील कार्रवाई है. इसके लिए, उपयोगकर्ता को हाल ही में लॉगिन करना होगा. इस गड़बड़ी का मतलब है कि उपयोगकर्ता ने हाल ही में साइन इन नहीं किया है. इस समस्या को हल करने के लिए, FIRUser पर reauthenticateWithCredential:completion: को लागू करके, उपयोगकर्ता की फिर से पुष्टि करें. |