Firebase Apple প্ল্যাটফর্মের যাচাইকরণ সংক্রান্ত সমস্যার সমাধান করা

Authentication পদ্ধতিতে সম্পূর্ণ হওয়ার কলব্যাক NSError আর্গুমেন্ট পেলে, সেটি নাল না হলে, কোনও সমস্যা হয়েছে। আপনার প্রোডাকশন কোডে উপযুক্ত সমস্যা সমাধানকারী লজিক ডিসপ্যাচ করতে, সাধারণ সমস্যা ও নিচে তালিকাভুক্ত পদ্ধতি-নির্দিষ্ট সমস্যার কোড চেক করুন।

কিছু সমস্যা ব্যবহারকারীর নির্দিষ্ট অ্যাকশনের মাধ্যমে সমাধান করা যেতে পারে, যেমন, FIRAuthErrorCodeUserTokenExpired ব্যবহারকারীকে আবার সাইন-ইন করতে বলে সমাধান করা যেতে পারে এবং FIRAuthErrorCodeWrongPassword ব্যবহারকারীকে সঠিক পাসওয়ার্ড দিতে বলে সমাধান করা যেতে পারে।

FIRAuthErrorCodeNetworkError বা FIRAuthErrorCodeTooManyRequests ছাড়া, একই আর্গুমেন্ট দিয়ে কোনও অপারেশন আবার চেষ্টা করলে সেটি কখনও সফল হবে না। অপারেশনটি সার্ভার সাইডে কার্যকর হয়েছে কিনা সেই সম্পর্কে কোনও অনুমান করবেন না।

সমস্যা তদন্ত বা লগ করার সময়, userInfo অভিধান পর্যালোচনা করুন। FIRAuthErrorNameKey-এ ক্রস-প্ল্যাটফর্ম সমস্যার নাম স্ট্রিং আছে যা সমস্যা শনাক্ত করার জন্য ব্যবহার করা যেতে পারে। NSLocalizedDescriptionKey-এ সমস্যার বিবরণ দেওয়া আছে। এই বিবরণটি ব্যবহারকারীর জন্য নয়, ডেভেলপারের জন্য। NSUnderlyingErrorKey-এ সেই মূল সমস্যাটি রয়েছে যার জন্য প্রশ্নে সমস্যা হয়েছে, যদি কোনও মূল সমস্যা থাকে।

উপরে তালিকাভুক্ত মূল ফিল্ড ছাড়াও, userInfo ডিকশনারিতে অন্যান্য ফিল্ড থাকতে পারে যা আপনি সমস্যার ডায়াগনসিস করার সময় সহায়ক বলে মনে করতে পারেন।

সব API পদ্ধতির ক্ষেত্রে সাধারণ সমস্যার কোড

কোড অর্থ
FIRAuthErrorCodeNetworkError অপারেশনের সময় নেটওয়ার্ক সংক্রান্ত সমস্যা হয়েছে বলে ইঙ্গিত করে।
FIRAuthErrorCodeUserNotFound ব্যবহারকারীর অ্যাকাউন্ট খুঁজে পাওয়া যায়নি তা বোঝায়। ব্যবহারকারীর অ্যাকাউন্ট মুছে দেওয়া হলে এটি হতে পারে।
FIRAuthErrorCodeUserTokenExpired বর্তমান ব্যবহারকারীর টোকেনের মেয়াদ শেষ হয়ে গেছে, যেমন, ব্যবহারকারী অন্য ডিভাইসে অ্যাকাউন্টের পাসওয়ার্ড পরিবর্তন করে থাকতে পারেন। এই ডিভাইসে ব্যবহারকারীকে আবার সাইন-ইন করার জন্য প্রম্পট করতে হবে।
FIRAuthErrorCodeTooManyRequests এর অর্থ হল, কলকারীর ডিভাইস থেকে Firebase Authentication সার্ভারে অস্বাভাবিক সংখ্যক অনুরোধ করার পরে অনুরোধটি ব্লক করা হয়েছে। কিছুক্ষণ পরে আবার চেষ্টা করুন।
FIRAuthErrorCodeInvalidAPIKey এর অর্থ হল, অ্যাপ্লিকেশনটি ভুল API কী দিয়ে কনফিগার করা হয়েছে।
FIRAuthErrorCodeAppNotAuthorized এর অর্থ হল, প্রদত্ত API কী ব্যবহার করে Firebase যাচাইকরণের জন্য অ্যাপটি অনুমোদিত নয়। Google API কনসোলে যান এবং ক্রেডেনশিয়াল ট্যাবের অধীনে চেক করুন যে আপনি যে API কী ব্যবহার করছেন তাতে আপনার অ্যাপ্লিকেশনের বান্ডেল আইডি হোয়াইটলিস্ট করা আছে।
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 পরিষেবা অ্যাকাউন্ট ও API কী যে আলাদা আলাদা প্রোজেক্টের, তা বোঝায়।

createUserWithEmail:password:completion:

কোড অর্থ
FIRAuthErrorCodeInvalidEmail ইমেল আইডিটি ভুল ফর্ম্যাটে লেখা হয়েছে।
FIRAuthErrorCodeEmailAlreadyInUse সাইন-আপ করার জন্য ব্যবহৃত ইমেল আইডি আগে থেকেই আছে তা বোঝায়। এই ধরনের ব্যবহারকারী কোন সাইন-ইন পদ্ধতি ব্যবহার করেছেন তা চেক করতে fetchProvidersForEmail-এ কল করুন এবং ব্যবহারকারীকে সেইসব পদ্ধতির মধ্যে একটি দিয়ে সাইন-ইন করতে প্রম্পট করুন।
FIRAuthErrorCodeOperationNotAllowed ইমেল ও পাসওয়ার্ড অ্যাকাউন্ট চালু করা নেই বলে ইঙ্গিত করে। Firebase কনসোলে এগুলি চালু করুন (নিরাপত্তা > যাচাইকরণ > সাইন-ইন পদ্ধতি ট্যাব বিকল্পে যান)।
FIRAuthErrorCodeWeakPassword খুব দুর্বল পাসওয়ার্ড সেট করার চেষ্টা করা হয়েছে বলে ইঙ্গিত করে। NSError.userInfo ডিকশনারি অবজেক্টের NSLocalizedFailureReasonErrorKey ফিল্ডে আরও বিস্তারিত ব্যাখ্যা থাকবে যা ব্যবহারকারীকে দেখানো যেতে পারে।

signOut:

কোড অর্থ
FIRAuthErrorCodeKeychainError কীচেন অ্যাক্সেস করার সময় কোনও সমস্যা হয়েছে বলে ইঙ্গিত করা হয়েছে। NSError.userInfo অভিধানে NSLocalizedFailureReasonErrorKey ও NSUnderlyingErrorKey ফিল্ডে সম্মুখীন হওয়া সমস্যা সম্পর্কে আরও তথ্য থাকবে।

FIRUser

FIRUser অপারেশনের জন্য সাধারণ সমস্যা

কোড অর্থ
FIRAuthErrorCodeInvalidUserToken এর থেকে বোঝা যায় যে সাইন-ইন করা ব্যবহারকারীর রিফ্রেশ টোকেন, যাতে সেশন সংক্রান্ত তথ্য থাকে, সেটি সঠিক নয়। এই ডিভাইসে ব্যবহারকারীকে আবার সাইন-ইন করার জন্য প্রম্পট করতে হবে।
FIRAuthErrorCodeUserDisabled এর অর্থ হল, ব্যবহারকারীর অ্যাকাউন্ট বন্ধ করা হয়েছে এবং Firebase কনসোলে (নিরাপত্তা > যাচাইকরণ > ব্যবহারকারী ট্যাব) আবার চালু না করা পর্যন্ত এটি আর ব্যবহার করা যাবে না।

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: ইনভোক করে ব্যবহারকারীকে আবার যাচাই করুন।