ईमेल कार्रवाइयों में पास होने की स्थिति

पासवर्ड फिर सेट करने या उपयोगकर्ता के ईमेल की पुष्टि करने के लिए, ईमेल से कार्रवाइयां भेजते समय, यूआरएल पर जारी रखें के ज़रिए, स्टेट की जानकारी दी जा सकती है. इससे, कार्रवाई पूरी होने के बाद उपयोगकर्ता को ऐप्लिकेशन पर वापस जाने की सुविधा मिलती है. इसके अलावा, यह भी तय किया जा सकता है कि वेब पेज के बजाय, इंस्टॉल किए जाने पर ईमेल ऐक्शन लिंक को सीधे किसी मोबाइल ऐप्लिकेशन से हैंडल किया जाए या नहीं.

यह सुविधा, इन सामान्य स्थितियों में बहुत काम आ सकती है:

  • कोई ऐसा उपयोगकर्ता जो फ़िलहाल लॉग इन नहीं है, ऐसे कॉन्टेंट को ऐक्सेस करने की कोशिश कर सकता है जिसके लिए लॉग इन करना ज़रूरी है. हालांकि, हो सकता है कि उपयोगकर्ता अपना पासवर्ड भूल गया हो. इसलिए, वह पासवर्ड रीसेट करने की प्रोसेस शुरू कर सकता है. इस प्रोसेस के आखिर में, उपयोगकर्ता को उम्मीद होती है कि वह ऐप्लिकेशन के उस सेक्शन पर वापस जाएगा जिसे वह ऐक्सेस करने की कोशिश कर रहा था.

  • कोई ऐप्लिकेशन, सिर्फ़ पुष्टि किए गए खातों को ऐक्सेस करने की सुविधा दे सकता है. उदाहरण के लिए, न्यूज़लेटर ऐप्लिकेशन के लिए ज़रूरी हो सकता है कि उपयोगकर्ता, सदस्यता लेने से पहले अपने ईमेल की पुष्टि करे. उपयोगकर्ता, ईमेल पते की पुष्टि करने की प्रोसेस पूरी करेगा और उसे उम्मीद होगी कि सदस्यता पूरी करने के लिए वह ऐप्लिकेशन पर वापस जाएगा.

  • आम तौर पर, जब कोई उपयोगकर्ता Apple के किसी ऐप्लिकेशन पर पासवर्ड फिर सेट करने या ईमेल पते की पुष्टि करने का फ़्लो शुरू करता है, तो उसे उम्मीद होती है कि वह इस फ़्लो को ऐप्लिकेशन के अंदर ही पूरा करेगा. यूआरएल पर जारी रखें के ज़रिए, स्टेट पास करने की सुविधा से ऐसा किया जा सकता है.

यूआरएल पर जारी रखें के ज़रिए, स्टेट पास करने की सुविधा एक काम की सुविधा है, जो Firebase पुष्टिकरण में उपलब्ध है. इससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.

ईमेल से की जाने वाली कार्रवाइयों में, यूआरएल पर जारी रखने की स्थिति की जानकारी देना

जारी रखने के लिए यूआरएल को सुरक्षित तरीके से भेजने के लिए, आपको यूआरएल के डोमेन को अनुमति वाले डोमेन के तौर पर जोड़ना होगा:

  1. Firebase console में, सुरक्षा > पुष्टि करना > सेटिंग टैब पर जाएं.

  2. अनुमति वाले डोमेन सेक्शन में, डोमेन जोड़ें पर क्लिक करें. इसके बाद, यूआरएल जोड़ें.

पासवर्ड फिर सेट करने या पुष्टि के लिए भेजा गया ईमेल भेजते समय, FIRActionCodeSettings का कोई इंस्टेंस देना ज़रूरी है. इस इंटरफ़ेस में ये पैरामीटर इस्तेमाल किए जाते हैं:

Swift

पैरामीटर टाइप ब्यौरा
URL स्ट्रिंग

यह लिंक (स्टेट/यूआरएल पर जारी रखें) सेट करता है, जिसके अलग-अलग कॉन्टेक्स्ट में अलग-अलग मतलब होते हैं:

  • जब वेब ऐक्शन विजेट में लिंक को हैंडल किया जाता है, तो यह डीप लिंक continueUrl क्वेरी पैरामीटर में होता है.
  • जब लिंक को सीधे ऐप्लिकेशन में हैंडल किया जाता है, तो यह continueUrl क्वेरी पैरामीटर होता है Hosting लिंक के डीप लिंक में.
iOSBundleID स्ट्रिंग यह iOS बंडल आईडी सेट करता है, ताकि Firebase Authentication यह तय कर सके कि उसे सिर्फ़ वेब लिंक या मोबाइल लिंक बनाना चाहिए. यह लिंक, Apple डिवाइस पर खोला जाता है
androidPackageName स्ट्रिंग यह Android पैकेज का नाम सेट करता है, ताकि Firebase Authentication यह तय कर सके कि उसे सिर्फ़ वेब लिंक या मोबाइल लिंक बनाना चाहिए. यह लिंक, Android डिवाइस पर खोला जाता है
handleCodeInApp बूल ईमेल कार्रवाई करने का लिंक, सबसे पहले किसी मोबाइल ऐप्लिकेशन में खुलेगा या वेब लिंक में. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है. अगर इसे 'सही' पर सेट किया जाता है, तो ऐक्शन कोड लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. साथ ही, अगर ऐप्लिकेशन इंस्टॉल है, तो यह लिंक ऐप्लिकेशन में खुलेगा . अगर इसे 'गलत' पर सेट किया जाता है, तो कोड सबसे पहले वेब विजेट पर भेजा जाएगा. इसके बाद, जारी रखने पर, अगर ऐप्लिकेशन इंस्टॉल है, तो यह ऐप्लिकेशन पर रीडायरेक्ट हो जाएगा.
linkDomain स्ट्रिंग जब किसी प्रोजेक्ट के लिए, होस्टिंग लिंक के कस्टम डोमेन तय किए जाते हैं, तो यह तय करें कि किसी खास मोबाइल ऐप्लिकेशन से लिंक खोलने पर, कौनसा डोमेन इस्तेमाल करना है. ऐसा न करने पर, डिफ़ॉल्ट डोमेन अपने-आप चुना जाता है. उदाहरण के लिए, PROJECT_ID.firebaseapp.com).
dynamicLinkDomain स्ट्रिंग अब इस्तेमाल में नहीं है. यह पैरामीटर तय न करें.

Objective-C

पैरामीटर टाइप ब्यौरा
URL NSString

यह लिंक (स्टेट/यूआरएल पर जारी रखें) सेट करता है, जिसके अलग-अलग कॉन्टेक्स्ट में अलग-अलग मतलब होते हैं:

  • जब वेब ऐक्शन विजेट में लिंक को हैंडल किया जाता है, तो यह डीप लिंक continueUrl क्वेरी पैरामीटर में होता है.
  • जब लिंक को सीधे ऐप्लिकेशन में हैंडल किया जाता है, तो यह continueUrl क्वेरी पैरामीटर होता है Hosting लिंक के डीप लिंक में.
iOSBundleID NSString यह iOS बंडल आईडी सेट करता है, ताकि Firebase Authentication यह तय कर सके कि उसे सिर्फ़ वेब लिंक या मोबाइल लिंक बनाना चाहिए. यह लिंक, Android या Apple डिवाइस पर खोला जाता है
androidPackageName NSString यह Android पैकेज का नाम सेट करता है, ताकि Firebase Authentication यह तय कर सके कि उसे सिर्फ़ वेब लिंक या मोबाइल लिंक बनाना चाहिए. यह लिंक, Android या Apple डिवाइस पर खोला जाता है
handleCodeInApp BOOL ईमेल कार्रवाई करने का लिंक, सबसे पहले किसी मोबाइल ऐप्लिकेशन में खुलेगा या वेब लिंक में. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है. अगर इसे 'सही' पर सेट किया जाता है, तो ऐक्शन कोड लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. साथ ही, अगर ऐप्लिकेशन इंस्टॉल है, तो यह लिंक ऐप्लिकेशन में खुलेगा . अगर इसे 'गलत' पर सेट किया जाता है, तो कोड सबसे पहले वेब विजेट पर भेजा जाएगा. इसके बाद, जारी रखने पर, अगर ऐप्लिकेशन इंस्टॉल है, तो यह ऐप्लिकेशन पर रीडायरेक्ट हो जाएगा.
linkDomain NSString जब किसी प्रोजेक्ट के लिए, कस्टम Hosting लिंक डोमेन तय किए जाते हैं, तो यह तय करें कि किसी खास मोबाइल ऐप्लिकेशन से लिंक खोलने पर, कौनसा डोमेन इस्तेमाल करना है. ऐसा न करने पर, डिफ़ॉल्ट डोमेन अपने-आप चुना जाता है. उदाहरण के लिए, PROJECT_ID.firebaseapp.com.
dynamicLinkDomain NSString अब इस्तेमाल में नहीं है. यह पैरामीटर तय न करें.

यहां दिए गए उदाहरण में, ईमेल की पुष्टि करने के लिए एक लिंक भेजने का तरीका बताया गया है. यह लिंक, सबसे पहले किसी मोबाइल ऐप्लिकेशन में खुलेगा. इसके लिए, कस्टम Hosting लिंक डोमेन custom-domain.com का इस्तेमाल किया गया है. डीप लिंक में, यूआरएल पर जारी रखें का पेलोड https://www.example.com/?email=user@example.com शामिल होगा.

Swift

var actionCodeSettings =  ActionCodeSettings.init()
actionCodeSettings.canHandleInApp = true
let user = Auth.auth().currentUser()
actionCodeSettings.URL =
    String(format: "https://www.example.com/?email=%@", user.email)
actionCodeSettings.iOSbundleID = Bundle.main.bundleIdentifier!
actionCodeSettings.setAndroidPakageName("com.example.android")
// Specify a custom Hosting link domain to use. The domain must be
// configured in Firebase Hosting and owned by the project.
actionCodeSettings.linkDomain = "custom-domain.com"
user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in
  if error {
    // Error occurred. Inspect error.code and handle error.
    return
  }
  // Email verification sent.
})

Objective-C

 FIRActionCodeSettings *actionCodeSettings = [[FIRActionCodeSettings alloc] init];
 actionCodeSettings.handleCodeInApp = YES;
 FIRUser *user = [FIRAuth auth].currentUser;
 NSString *urlString =
     [NSString stringWithFormat:@"https://www.example.com/?email=%@", user.email];
 actionCodeSettings.URL = [NSURL URLWithString:urlString];
 actionCodeSettings.iOSBundleID = [NSBundle mainBundle].bundleIdentifier;
// Specify a custom Hosting link domain to use. The domain must be
// configured in Firebase Hosting and owned by the project.
 actionCodeSettings.linkDomain = @"custom-domain.com";
 [actionCodeSettings setAndroidPackageName:@"com.example.android"];
 [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings
                                        completion:^(NSError *_Nullable error) {
   if (error) {
     // Error occurred. Inspect error.code and handle error.
     return;
   }
   // Email verification sent.
 }];

Firebase Authentication Firebase Hosting का इस्तेमाल तब करता है, जब वह कोई ऐसा लिंक भेजता है जिसे किसी मोबाइल ऐप्लिकेशन में खोला जाना हो. इस सुविधा का इस्तेमाल करने के लिए, Hosting लिंक को Firebase कंसोल में कॉन्फ़िगर करना होगा.

  1. Apple के ऐप्लिकेशन कॉन्फ़िगर करना:

    1. अगर आपको अपने ऐप्लिकेशन से इन लिंक को हैंडल करना है, तो आपको अपने ऐप्लिकेशन की क्षमताओं में, होस्टिंग लिंक के डोमेन को एसोसिएटेड डोमेन के तौर पर कॉन्फ़िगर करना होगा.Hosting
    2. इस बारे में ज़्यादा जानने के लिए, iOS होस्टिंग लिंक पाने के निर्देश देखें.
  2. Android ऐप्लिकेशन कॉन्फ़िगर करना:

    1. अगर आपको अपने Android ऐप्लिकेशन से इन लिंक को हैंडल करना है, तो आपके ऐप्लिकेशन का पैकेज नाम Firebase console प्रोजेक्ट सेटिंग में तय करना होगा. इसके अलावा, ऐप्लिकेशन के सर्टिफ़िकेट का SHA-1 और SHA-256 देना होगा.
    2. आपको अपनी AndroidManifest.xml फ़ाइल में, डीप लिंक के लिए इंटेंट फ़िल्टर भी कॉन्फ़िगर करना होगा.
    3. इस बारे में ज़्यादा जानने के लिए, Android होस्टिंग लिंक पाने के निर्देश देखें.

वेब ऐप्लिकेशन में ईमेल से की जाने वाली कार्रवाइयां हैंडल करना

आपके पास यह तय करने का विकल्प होता है कि आपको ऐक्शन कोड लिंक को सबसे पहले किसी वेब ऐप्लिकेशन से हैंडल करना है या नहीं. अगर मोबाइल ऐप्लिकेशन उपलब्ध है, तो कार्रवाई पूरी होने के बाद, उसे किसी दूसरे वेब पेज या मोबाइल ऐप्लिकेशन पर रीडायरेक्ट किया जा सकता है. इसके लिए, FIRActionCodeSettings (Obj-C) या ActionCodeSettings (Swift) ऑब्जेक्ट में, handleCodeInApp को false पर सेट करें. बंडल आईडी या Android पैकेज का नाम देना ज़रूरी नहीं है. हालांकि, इन्हें देने से, ईमेल ऐक्शन कोड पूरा होने पर, उपयोगकर्ता को तय किए गए ऐप्लिकेशन पर वापस रीडायरेक्ट किया जा सकेगा.

यहां इस्तेमाल किया गया वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट यूआरएल उपलब्ध कराया जाता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना देखें.

इस मामले में, continueURL क्वेरी पैरामीटर में मौजूद लिंक, एक Hosting लिंक होगा. इसका पेलोड, URL होगा जिसे ActionCodeSettings ऑब्जेक्ट में तय किया गया है.

ईमेल से की जाने वाली कार्रवाइयों को हैंडल करते समय, जैसे कि ईमेल की पुष्टि करना, oobCode क्वेरी पैरामीटर से ऐक्शन कोड को डीप लिंक से पार्स करना होगा. इसके बाद, बदलाव लागू करने के लिए, यानी ईमेल की पुष्टि करने के लिए, इसे applyActionCode के ज़रिए लागू करना होगा.

मोबाइल ऐप्लिकेशन में ईमेल से की जाने वाली कार्रवाइयां हैंडल करना

आपके पास यह तय करने का विकल्प होता है कि आपको ऐक्शन कोड लिंक को सबसे पहले अपने मोबाइल ऐप्लिकेशन में हैंडल करना है या नहीं. हालांकि, इसके लिए ज़रूरी है कि ऐप्लिकेशन इंस्टॉल हो. अगर लिंक पर किसी ऐसे डिवाइस से क्लिक किया जाता है जिस पर मोबाइल ऐप्लिकेशन काम नहीं करता है, तो यह लिंक किसी वेब पेज से खुलता है. इसके लिए, FIRActionCodeSettings (Obj-C) या ActionCodeSettings (Swift) ऑब्जेक्ट में, handleCodeInApp को true पर सेट करें. मोबाइल ऐप्लिकेशन का Android पैकेज नाम या बंडल आईडी भी तय करना होगा. यहां इस्तेमाल किया गया फ़ॉलबैक वेब यूआरएल, तब इस्तेमाल किया जाता है, जब कोई मोबाइल ऐप्लिकेशन उपलब्ध नहीं होता है. यह यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट यूआरएल उपलब्ध कराया जाता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना देखें.

इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप्लिकेशन लिंक, Hosting लिंक होगा इसका पेलोड, Console में कॉन्फ़िगर किया गया ऐक्शन कोड यूआरएल होगा. इसमें oobCode, mode, apiKey, और continueUrl क्वेरी पैरामीटर शामिल होंगे. बाद वाला पैरामीटर, ओरिजनल URL जिसे FIRActionCodeSettings (Obj-C) या ActionCodeSettings (Swift) ऑब्जेक्ट में तय किया गया है. ईमेल हैंडलर को पसंद के मुताबिक बनाना सेक्शन में बताए गए वेब फ़्लो की तरह ही, ऐक्शन कोड को सीधे किसी मोबाइल ऐप्लिकेशन से लागू किया जा सकता है .

ईमेल से की जाने वाली कार्रवाइयों को हैंडल करते समय, जैसे कि ईमेल की पुष्टि करना, oobCode क्वेरी पैरामीटर से ऐक्शन कोड को डीप लिंक से पार्स करना होगा. इसके बाद, बदलाव लागू करने के लिए, यानी ईमेल की पुष्टि करने के लिए, इसे applyActionCode के ज़रिए लागू करना होगा.