Firebase Apple Platforms की पुष्टि से जुड़ी गड़बड़ियां ठीक करना

अगर 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: को लागू करके, उपयोगकर्ता की फिर से पुष्टि करें.