पासवर्ड रीसेट करने या उपयोगकर्ता के ईमेल की पुष्टि करने के लिए, ईमेल से जुड़ी कार्रवाइयां भेजते समय, जारी रखने के यूआरएल के ज़रिए स्थिति को पास किया जा सकता है. इससे उपयोगकर्ता को कार्रवाई पूरी होने के बाद, ऐप्लिकेशन पर वापस जाने की सुविधा मिलती है. इसके अलावा, यह भी तय किया जा सकता है कि जब मोबाइल ऐप्लिकेशन इंस्टॉल हो, तब ईमेल ऐक्शन लिंक को वेब पेज के बजाय सीधे तौर पर मोबाइल ऐप्लिकेशन से हैंडल किया जाए या नहीं.
यह सुविधा, इन सामान्य स्थितियों में बहुत मददगार हो सकती है:
ऐसा हो सकता है कि कोई ऐसा व्यक्ति कॉन्टेंट ऐक्सेस करने की कोशिश कर रहा हो जिसने अभी लॉग इन नहीं किया है. हालांकि, इस कॉन्टेंट को ऐक्सेस करने के लिए, लॉग इन करना ज़रूरी है. हालांकि, ऐसा हो सकता है कि उपयोगकर्ता अपना पासवर्ड भूल गया हो. इसलिए, वह पासवर्ड रीसेट करने का अनुरोध कर रहा हो. फ़्लो के आखिर में, उपयोगकर्ता को ऐप्लिकेशन के उस सेक्शन पर वापस जाने की उम्मीद होती है जिसे वह ऐक्सेस करने की कोशिश कर रहा था.
कोई ऐप्लिकेशन, सिर्फ़ उन खातों का ऐक्सेस दे सकता है जिनकी पुष्टि हो चुकी है. उदाहरण के लिए, न्यूज़लेटर ऐप्लिकेशन में सदस्यता लेने से पहले, उपयोगकर्ता को अपने ईमेल पते की पुष्टि करनी पड़ सकती है. उपयोगकर्ता को ईमेल से पुष्टि करने की प्रोसेस पूरी करनी होगी. इसके बाद, उसे सदस्यता लेने की प्रोसेस पूरी करने के लिए ऐप्लिकेशन पर वापस भेज दिया जाएगा.
आम तौर पर, जब कोई उपयोगकर्ता Apple के किसी ऐप्लिकेशन पर पासवर्ड रीसेट करने या ईमेल की पुष्टि करने की प्रोसेस शुरू करता है, तो वह चाहता है कि यह प्रोसेस ऐप्लिकेशन में ही पूरी हो. 'जारी रखें' यूआरएल के ज़रिए स्थिति को पास करने की सुविधा से ऐसा करना मुमकिन हो पाता है.
जारी रखने के यूआरएल के ज़रिए स्थिति को पास करने की सुविधा, Firebase Auth की एक अहम सुविधा है. इससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.
ईमेल से जुड़ी कार्रवाइयों में स्टेट/जारी रखने का यूआरएल पास करना
जारी रखने के लिए यूआरएल को सुरक्षित तरीके से पास करने के लिए, यूआरएल के डोमेन को Firebase कंसोल में अनुमति वाली सूची में शामिल करना होगा. अगर यह डोमेन पहले से मौजूद नहीं है, तो इसे साइन-इन करने का तरीका टैब में जाकर, पुष्टि सेक्शन में जोड़ें. इसके लिए, अनुमति वाले डोमेन की सूची में यह डोमेन जोड़ें.
पासवर्ड रीसेट करने या पुष्टि करने के लिए ईमेल भेजते समय, ActionCodeSettings इंस्टेंस देना ज़रूरी है. यह इंटरफ़ेस, इन पैरामीटर का इस्तेमाल करता है:
| पैरामीटर | टाइप | ब्यौरा | |||
|---|---|---|---|---|---|
url | 
    स्ट्रिंग | यह कुकी, लिंक (स्टेट/जारी रखने का यूआरएल) सेट करती है. इसका मतलब अलग-अलग संदर्भों में अलग-अलग होता है: 
  | 
  |||
iOSBundleId | 
    स्ट्रिंग | यह कुकी, बंडल आईडी सेट करती है. अगर Apple का ऐप्लिकेशन इंस्टॉल है, तो यह लिंक को उसमें खोलने की कोशिश करेगा. ऐप्लिकेशन को Console में रजिस्टर करना ज़रूरी है. अगर कोई बंडल आईडी नहीं दिया गया है, तो इस फ़ील्ड की वैल्यू को ऐप्लिकेशन के मुख्य बंडल के बंडल आईडी पर सेट किया जाता है. | |||
androidPackageName | 
    स्ट्रिंग | Android पैकेज का नाम सेट करता है. अगर Android ऐप्लिकेशन इंस्टॉल है, तो यह लिंक को उसमें खोलने की कोशिश करेगा. | |||
androidInstallApp | 
    बूल | इससे यह तय किया जाता है कि अगर डिवाइस पर Android ऐप्लिकेशन काम करता है और वह पहले से इंस्टॉल नहीं है, तो उसे इंस्टॉल करना है या नहीं. अगर इस फ़ील्ड को packageName के बिना दिया जाता है, तो एक गड़बड़ी का मैसेज दिखता है. इसमें बताया जाता है कि इस फ़ील्ड के साथ packageName देना ज़रूरी है. | |||
androidMinimumVersion | 
    स्ट्रिंग | ऐप्लिकेशन का वह कम से कम वर्शन जो इस फ़्लो में काम करता है. अगर minimumVersion तय किया गया है और ऐप्लिकेशन का पुराना वर्शन इंस्टॉल है, तो उपयोगकर्ता को Play Store पर ले जाया जाता है, ताकि वह ऐप्लिकेशन को अपग्रेड कर सके. Android ऐप्लिकेशन को Console में रजिस्टर करना ज़रूरी है. | |||
handleCodeInApp | 
    बूल | ईमेल ऐक्शन लिंक को पहले मोबाइल ऐप्लिकेशन में खोला जाएगा या वेब लिंक में. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है. इस विकल्प को 'सही है' पर सेट करने पर, कार्रवाई के कोड वाला लिंक, यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. साथ ही, अगर ऐप्लिकेशन इंस्टॉल है, तो उसे ऐप्लिकेशन से खोला जाएगा. अगर यह वैल्यू गलत है, तो कोड सबसे पहले वेब विजेट को भेजा जाएगा. इसके बाद, जारी रखने पर ऐप्लिकेशन इंस्टॉल होने पर उसे रीडायरेक्ट कर दिया जाएगा. | |||
dynamicLinkDomain | 
    स्ट्रिंग | (अब काम नहीं करता, `linkDomain` का इस्तेमाल करें) अगर मौजूदा लिंक को Firebase डाइनैमिक लिंक का इस्तेमाल करके खोलना है, तो यह विकल्प डाइनैमिक लिंक के डोमेन (या सबडोमेन) को सेट करता है. हर प्रोजेक्ट के लिए, एक से ज़्यादा डाइनैमिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं. इसलिए, इस फ़ील्ड की मदद से, कोई एक डोमेन चुना जा सकता है. अगर कोई डोमेन नहीं दिया जाता है, तो पहले डोमेन का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है. | linkDomain | 
    स्ट्रिंग | यह Firebase Hosting का कस्टम डोमेन होता है. इसका इस्तेमाल तब किया जाता है, जब लिंक को किसी मोबाइल ऐप्लिकेशन के ज़रिए खोला जाना हो. डोमेन को Firebase Hosting में कॉन्फ़िगर किया जाना चाहिए. साथ ही, उसका मालिकाना हक प्रोजेक्ट के पास होना चाहिए. यह डिफ़ॉल्ट होस्टिंग डोमेन (`web.app` या `firebaseapp.com`) नहीं हो सकता. यह सेटिंग, बंद की जा चुकी `dynamicLinkDomain` सेटिंग की जगह इस्तेमाल की जाती है. | 
यहां दिए गए उदाहरण में बताया गया है कि ईमेल से पुष्टि करने वाला लिंक कैसे भेजा जाता है. यह लिंक, कस्टम डाइनैमिक लिंक डोमेन example.page.link का इस्तेमाल करके, Firebase डाइनैमिक लिंक के तौर पर सबसे पहले मोबाइल ऐप्लिकेशन में खुलेगा. इसमें iOS ऐप्लिकेशन com.example.ios या Android ऐप्लिकेशन com.example.android शामिल है. अगर ऐप्लिकेशन पहले से इंस्टॉल नहीं है, तो यह इंस्टॉल हो जाएगा. साथ ही, इसका वर्शन कम से कम 12 होना चाहिए. डीप लिंक में, जारी रखने वाले यूआरएल का पेलोड https://www.example.com/?email=user@example.com शामिल होगा.
final user = FirebaseAuth.instance.currentUser;
final actionCodeSettings = ActionCodeSettings(
  url: "http://www.example.com/verify?email=${user?.email}",
  iOSBundleId: "com.example.ios",
  androidPackageName: "com.example.android",
);
await user?.sendEmailVerification(actionCodeSettings);
Firebase डाइनैमिक लिंक को कॉन्फ़िगर करना
Firebase Auth, मोबाइल ऐप्लिकेशन में खोले जाने वाले लिंक को भेजते समय Firebase डाइनैमिक लिंक का इस्तेमाल करता है. इस सुविधा का इस्तेमाल करने के लिए, Firebase कंसोल में डाइनैमिक लिंक कॉन्फ़िगर किए जाने चाहिए.
Firebase डाइनैमिक लिंक चालू करें:
Firebase कंसोल में, डाइनैमिक लिंक सेक्शन खोलें.
अगर आपने अब तक डाइनैमिक लिंक की शर्तें स्वीकार नहीं की हैं और डाइनैमिक लिंक डोमेन नहीं बनाया है, तो अभी ऐसा करें.
अगर आपने पहले से ही कोई Dynamic Links डोमेन बनाया है, तो उसे नोट कर लें. Dynamic Links का डोमेन आम तौर पर, इस उदाहरण की तरह दिखता है:
example.page.link
आने वाले लिंक को इंटरसेप्ट करने के लिए, Apple या Android ऐप्लिकेशन को कॉन्फ़िगर करते समय आपको इस वैल्यू की ज़रूरत होगी.
Android ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने Android ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो Firebase Console की प्रोजेक्ट सेटिंग में Android पैकेज का नाम डालना होगा. इसके अलावा, ऐप्लिकेशन के सर्टिफ़िकेट का SHA-1 और SHA-256 भी देना होगा.
 - आपको AndroidManifest.xml फ़ाइल में, डीप लिंक के लिए इंटेंट फ़िल्टर भी कॉन्फ़िगर करना होगा.
 - इस बारे में ज़्यादा जानने के लिए, Android डाइनैमिक लिंक पाने से जुड़े निर्देश देखें.
 
Apple के ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो Firebase कंसोल की प्रोजेक्ट सेटिंग में बंडल आईडी डालना होगा. इसके अलावा, App Store का आईडी और Apple Developer Team का आईडी भी देना ज़रूरी है.
 - आपको अपने ऐप्लिकेशन की सुविधाओं में, FDL यूनिवर्सल लिंक डोमेन को असोसिएटेड डोमेन के तौर पर भी कॉन्फ़िगर करना होगा.
 - अगर आपको अपने ऐप्लिकेशन को iOS 8 और इससे पहले के वर्शन पर डिस्ट्रिब्यूट करना है, तो आपको आने वाले यूआरएल के लिए, अपने बंडल आईडी को कस्टम स्कीम के तौर पर सेट करना होगा.
 - इस बारे में ज़्यादा जानने के लिए, Apple प्लैटफ़ॉर्म पर डाइनैमिक लिंक पाने से जुड़े निर्देश देखें.
 
वेब ऐप्लिकेशन में ईमेल से जुड़ी कार्रवाइयों को मैनेज करना
आपके पास यह तय करने का विकल्प होता है कि आपको कार्रवाई के कोड वाले लिंक को पहले वेब ऐप्लिकेशन से हैंडल करना है या नहीं. अगर हैंडल करना है, तो कार्रवाई पूरी होने के बाद, आपको किसी दूसरे वेब पेज या मोबाइल ऐप्लिकेशन पर रीडायरेक्ट करना है या नहीं. हालांकि, ऐसा तब ही किया जा सकता है, जब मोबाइल ऐप्लिकेशन उपलब्ध हो.
इसके लिए, ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को false पर सेट किया जाता है. बंडल आईडी या Android पैकेज का नाम देना ज़रूरी नहीं है. हालांकि, इन्हें देने से उपयोगकर्ता को ईमेल ऐक्शन कोड पूरा होने पर, बताए गए ऐप्लिकेशन पर वापस रीडायरेक्ट किया जा सकेगा.
यहां इस्तेमाल किया गया वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट रूप से एक उपलब्ध कराया जाता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख पढ़ें.
इस मामले में, continueURL क्वेरी पैरामीटर में मौजूद लिंक, एक FDL लिंक होगा. इसका पेलोड, ActionCodeSettings ऑब्जेक्ट में दिया गया URL होगा. आपके पास अपने ऐप्लिकेशन से आने वाले लिंक को इंटरसेप्ट करने और उसे हैंडल करने का विकल्प होता है. इसके लिए, आपको किसी अतिरिक्त डिपेंडेंसी की ज़रूरत नहीं होती. हालांकि, हमारा सुझाव है कि आप डीप लिंक को पार्स करने के लिए, FDL क्लाइंट लाइब्रेरी का इस्तेमाल करें.
ईमेल से जुड़ी कार्रवाइयों (जैसे, ईमेल की पुष्टि करना) को मैनेज करते समय, oobCode क्वेरी पैरामीटर से मिले ऐक्शन कोड को डीप लिंक से पार्स करना होता है.इसके बाद, बदलाव लागू करने के लिए, applyActionCode के ज़रिए इसे लागू करना होता है. जैसे, पुष्टि किया जाने वाला ईमेल.
मोबाइल ऐप्लिकेशन में ईमेल से जुड़ी कार्रवाइयों को मैनेज करना
आपके पास यह तय करने का विकल्प होता है कि ऐक्शन कोड लिंक को सबसे पहले आपके मोबाइल ऐप्लिकेशन में हैंडल किया जाए. हालांकि, इसके लिए ज़रूरी है कि ऐप्लिकेशन इंस्टॉल हो. Android ऐप्लिकेशन के लिए, androidInstallApp के ज़रिए यह भी तय किया जा सकता है कि अगर डिवाइस पर ऐप्लिकेशन काम करता है और वह पहले से इंस्टॉल नहीं है, तो उसे इंस्टॉल किया जाए.
अगर लिंक पर किसी ऐसे डिवाइस से क्लिक किया जाता है जिस पर मोबाइल ऐप्लिकेशन काम नहीं करता है, तो इसे वेब पेज से खोला जाता है.
इसके लिए, ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को true पर सेट किया जाता है. मोबाइल ऐप्लिकेशन का Android पैकेज का नाम या बंडल आईडी भी बताना होगा.अगर कोई मोबाइल ऐप्लिकेशन उपलब्ध नहीं है, तो यहां इस्तेमाल किया गया फ़ॉलबैक वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल होता है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट रूप से एक उपलब्ध कराया जाता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख पढ़ें.
इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप्लिकेशन लिंक, एक FDL लिंक होगा. इसका पेलोड, Console में कॉन्फ़िगर किया गया ऐक्शन कोड यूआरएल होगा. इसमें क्वेरी पैरामीटर oobCode, mode, apiKey, और continueUrl शामिल होंगे. बाद वाला, ActionCodeSettings ऑब्जेक्ट में दिया गया ओरिजनल URL होगा. आपके पास अपने ऐप्लिकेशन से आने वाले लिंक को इंटरसेप्ट करने और उसे हैंडल करने का विकल्प होता है. इसके लिए, आपको किसी अन्य डिपेंडेंसी की ज़रूरत नहीं होती. हालांकि, हम आपको डीप लिंक को पार्स करने के लिए, FDL क्लाइंट लाइब्रेरी का इस्तेमाल करने का सुझाव देते हैं. ऐक्शन कोड को सीधे तौर पर किसी मोबाइल ऐप्लिकेशन से लागू किया जा सकता है. यह ठीक उसी तरह से काम करता है जिस तरह ईमेल हैंडलर को पसंद के मुताबिक बनाना सेक्शन में बताए गए वेब फ़्लो से इसे मैनेज किया जाता है.
ईमेल से जुड़ी कार्रवाइयों (जैसे, ईमेल की पुष्टि करना) को मैनेज करते समय, oobCode क्वेरी पैरामीटर से मिले ऐक्शन कोड को डीप लिंक से पार्स करना होता है.इसके बाद, बदलाव लागू करने के लिए, applyActionCode के ज़रिए इसे लागू करना होता है. जैसे, पुष्टि किया जाने वाला ईमेल.