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

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

इन सामान्य स्थितियों में यह बहुत मददगार साबित हो सकता है:

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

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

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

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

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

एक जारी यूआरएल को सुरक्षित रूप से पास करने के लिए, यूआरएल के डोमेन को उन्हें Firebase कंसोल में अनुमति दी जाएगी. ऐसा करने के लिए, पुष्टि करें सेक्शन में इस डोमेन को साइन-इन करने का तरीका टैब के तहत, अनुमति वाले डोमेन की सूची पहले से ही मौजूद न हो.

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

Swift

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

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

  • जब लिंक को वेब ऐक्शन विजेट में हैंडल किया जाता है, तो यह continueUrl क्वेरी पैरामीटर में मौजूद लिंक पर क्लिक करें.
  • जब लिंक को सीधे ऐप्लिकेशन में हैंडल किया जाता है, तो यह इसके डीप लिंक में continueUrl क्वेरी पैरामीटर है डाइनैमिक लिंक.
iOSBundleID स्ट्रिंग बंडल आईडी सेट करता है. ऐसा करने से, Apple ऐप्लिकेशन में लिंक खुल जाएगा, तो तो यह इंस्टॉल हो जाता है. ऐप्लिकेशन, Console में रजिस्टर होना चाहिए. अगर नहीं बंडल आईडी दिया गया है, इस फ़ील्ड का मान इसके बंडल आईडी पर सेट किया गया है ऐप्लिकेशन का मुख्य बंडल.
androidPackageName स्ट्रिंग Android पैकेज का नाम सेट करता है. इससे लिंक को किसी Android ऐप्लिकेशन को इंस्टॉल करें.
androidInstallIfNotAvailable बूल इससे पता चलता है कि अगर डिवाइस पर Android ऐप्लिकेशन काम करता है, तो उसे इंस्टॉल करना है या नहीं साथ ही, यह ऐप्लिकेशन पहले से इंस्टॉल न हो. अगर इस फ़ील्ड को PackageName, एक गड़बड़ी होती है जो यह बताती है कि PackageName इस फ़ील्ड के साथ दिया गया होना चाहिए.
androidMinimumVersion स्ट्रिंग ऐप्लिकेशन का वह कम से कम वर्शन जो इस फ़्लो में काम करता हो. अगर आपने minVersion बताया गया है और ऐप्लिकेशन का पुराना वर्शन इंस्टॉल किया गया है, ऐप्लिकेशन को अपग्रेड करने के लिए, उपयोगकर्ता को Play Store पर ले जाया जाता है. Android ऐप्लिकेशन कंसोल में रजिस्टर होना चाहिए.
handleCodeInApp बूल ईमेल कार्रवाई के लिंक को मोबाइल ऐप्लिकेशन या वेब में खोला जाएगा या नहीं लिंक को हटाएं. डिफ़ॉल्ट रूप से, यह वैल्यू 'गलत' पर सेट होती है. अगर नीति को 'सही है' पर सेट किया जाता है, तो ऐक्शन कोड का लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा और यह खोला जाएगा ऐप्लिकेशन से इंस्टॉल किया जाएगा. गलत केस में, कोड को पहले वेब विजेट और फिर जारी रखने पर, ऐप्लिकेशन पर रीडायरेक्ट किया जाएगा इंस्टॉल किया गया.
dynamicLinkDomain स्ट्रिंग यह मौजूदा लिंक के साथ इस्तेमाल करने के लिए, डाइनैमिक लिंक डोमेन (या सबडोमेन) को सेट करता है अगर इसे Firebase डाइनैमिक लिंक का इस्तेमाल करके खोला जाए. एक से ज़्यादा डाइनैमिक के तौर पर लिंक डोमेन को प्रति प्रोजेक्ट के हिसाब से कॉन्फ़िगर किया जा सकता है, इसलिए यह फ़ील्ड साफ़ तौर पर किसी एक को चुनने की क्षमता. अगर कोई जानकारी नहीं दी गई है, तो पहला डोमेन डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है.

Objective-C

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

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

  • जब लिंक को वेब ऐक्शन विजेट में हैंडल किया जाता है, तो यह continueUrl क्वेरी पैरामीटर में मौजूद लिंक पर क्लिक करें.
  • जब लिंक को सीधे ऐप्लिकेशन में हैंडल किया जाता है, तो यह इसके डीप लिंक में continueUrl क्वेरी पैरामीटर है डाइनैमिक लिंक.
iOSBundleID एनएसस्ट्रिंग बंडल आईडी सेट करता है. ऐसा करने से, Apple ऐप्लिकेशन में लिंक खुल जाएगा, तो तो यह इंस्टॉल हो जाता है. ऐप्लिकेशन, Console में रजिस्टर होना चाहिए.
androidPackageName एनएसस्ट्रिंग Android पैकेज का नाम सेट करता है. इससे लिंक को किसी Android ऐप्लिकेशन को इंस्टॉल करें.
androidInstallIfNotAvailable BOOL यह तय करता है कि अगर डिवाइस पर Android ऐप्लिकेशन काम करता है, तो उसे इंस्टॉल किया जाए या नहीं साथ ही, यह ऐप्लिकेशन पहले से इंस्टॉल न हो. अगर इस फ़ील्ड को PackageName, एक गड़बड़ी होती है जो यह बताती है कि PackageName इस फ़ील्ड के साथ दिया गया होना चाहिए.
androidMinimumVersion एनएसस्ट्रिंग ऐप्लिकेशन का वह कम से कम वर्शन जो इस फ़्लो में काम करता हो. अगर आपने कम से कम वर्शन के बारे में बताया गया है और ऐप्लिकेशन का पुराना वर्शन इंस्टॉल किया गया है, ऐप्लिकेशन को अपग्रेड करने के लिए, उपयोगकर्ता को Play Store पर ले जाया जाता है. Android ऐप्लिकेशन कंसोल में रजिस्टर होना चाहिए.
handleCodeInApp BOOL ईमेल कार्रवाई के लिंक को मोबाइल ऐप्लिकेशन या वेब में खोला जाएगा या नहीं लिंक को हटाएं. डिफ़ॉल्ट रूप से, यह वैल्यू 'गलत' पर सेट होती है. अगर नीति को 'सही है' पर सेट किया जाता है, तो ऐक्शन कोड का लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा और यह खोला जाएगा ऐप्लिकेशन से इंस्टॉल किया जाएगा. गलत केस में, कोड को पहले वेब विजेट और फिर जारी रखने पर, ऐप्लिकेशन पर रीडायरेक्ट किया जाएगा इंस्टॉल किया गया.
dynamicLinkDomain एनएसस्ट्रिंग यह मौजूदा लिंक के साथ इस्तेमाल करने के लिए, डाइनैमिक लिंक डोमेन (या सबडोमेन) को सेट करता है अगर इसे Firebase डाइनैमिक लिंक का इस्तेमाल करके खोला जाए. एक से ज़्यादा डाइनैमिक के तौर पर लिंक डोमेन को प्रति प्रोजेक्ट के हिसाब से कॉन्फ़िगर किया जा सकता है, इसलिए यह फ़ील्ड साफ़ तौर पर किसी एक को चुनने की क्षमता. अगर कोई जानकारी नहीं दी गई है, तो पहला डोमेन डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है.

नीचे दिए गए उदाहरण में, ईमेल पते की पुष्टि करने वाले लिंक को भेजने का तरीका बताया गया है आपके URL कस्टम पैरामीटर का उपयोग करके पहले से मौजूद डाइनैमिक लिंक डोमेन example.page.link (iOS ऐप्लिकेशन com.example.ios या Android ऐप्लिकेशन com.example.android जहां ऐप्लिकेशन अगर पहले से इंस्टॉल नहीं किया गया है और कम से कम वर्शन 12 है, तो इंस्टॉल हो जाएगा). कॉन्टेंट बनाने डीप लिंक में, यूआरएल के पेलोड को जारी रखने का विकल्प होगा 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",
                                         installIfNotAvailable:true,
                                         minimumVersion:"12")
// When multiple custom dynamic link domains are defined, specify which one to use.
actionCodeSettings.dynamicLinkDomain = "example.page.link"
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;
 // When multiple custom dynamic link domains are defined, specify which one to use.
 actionCodeSettings.dynamicLinkDomain = @"example.page.link";
 [actionCodeSettings setAndroidPackageName:@"com.example.android"
                     installIfNotAvailable:YES
                            minimumVersion:'12'];
 [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings
                                        completion:^(NSError *_Nullable error) {
   if (error) {
     // Error occurred. Inspect error.code and handle error.
     return;
   }
   // Email verification sent.
 }];

Firebase पुष्टि, Firebase डाइनैमिक लिंक का इस्तेमाल तब करता है, जब लिंक शामिल होता है जो मोबाइल ऐप्लिकेशन में खोला जाता है. इस सुविधा का इस्तेमाल करने के लिए सुविधा के लिए, डाइनैमिक लिंक को Firebase कंसोल में कॉन्फ़िगर किया जाना चाहिए.

  1. Firebase डाइनैमिक लिंक चालू करें:

    1. Firebase कंसोल में, Dynamic Links सेक्शन खोलें.
    2. अगर आपने अभी तक Dynamic Links की शर्तें स्वीकार नहीं की हैं और Dynamic Links बनाया है, तो डोमेन है, तो अभी ऐसा करें.

      अगर आपने पहले ही Dynamic Links डोमेन बना लिया है, तो उसे नोट करें. Dynamic Links डोमेन आम तौर पर नीचे दिए गए उदाहरण जैसा दिखता है:

      example.page.link

      आपको इस वैल्यू की ज़रूरत तब होगी, जब Apple या Android ऐप्लिकेशन को आने वाले लिंक को इंटरसेप्ट करें.

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

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

    1. अगर आपको अपने ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो Firebase कंसोल में बंडल आईडी तय करना ज़रूरी है प्रोजेक्ट सेटिंग. साथ ही, App Store का आईडी और Apple Developer, टीम आईडी को भी बताना ज़रूरी है.
    2. आपको FDL यूनिवर्सल लिंक डोमेन को आपके ऐप्लिकेशन की क्षमताओं में असोसिएटेड डोमेन.
    3. अगर आपको अपना ऐप्लिकेशन iOS 8 और इससे पहले के वर्शन पर उपलब्ध कराना है, तो इनकमिंग के लिए आपको कस्टम स्कीम के तौर पर अपना बंडल आईडी सेट करना होगा यूआरएल.
    4. इस बारे में ज़्यादा जानकारी के लिए, इसे देखें Apple प्लैटफ़ॉर्म के डाइनैमिक लिंक से जुड़े निर्देश पाना.

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

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

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

इस मामले में, continueURL क्वेरी पैरामीटर में मौजूद लिंक FDL लिंक, जिसका पेलोड ActionCodeSettings में बताया गया URL है ऑब्जेक्ट है. हालांकि, आपके पास अपने ऐप्लिकेशन से आने वाले लिंक को इंटरसेप्ट और मैनेज करने का विकल्प है हमारा सुझाव है कि आप एफ़डीएल क्लाइंट लाइब्रेरी का इस्तेमाल करके, अतिरिक्त डिपेंडेंसी के बिना किसी अतिरिक्त डिपेंडेंसी का इस्तेमाल करें अपने लिए डीप लिंक को पार्स कर सकते हैं.

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

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

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

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

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