Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

حالة المرور في إجراءات البريد الإلكتروني

يمكنك تمرير الحالة عبر عنوان URL للمتابعة عند إرسال إجراءات البريد الإلكتروني لإعادة تعيين كلمة المرور أو التحقق من البريد الإلكتروني للمستخدم. يوفر هذا للمستخدم القدرة على العودة إلى التطبيق بعد اكتمال الإجراء. بالإضافة إلى ذلك ، يمكنك تحديد ما إذا كنت تريد التعامل مع ارتباط إجراء البريد الإلكتروني مباشرةً من تطبيق الهاتف المحمول عند تثبيته بدلاً من صفحة الويب.

يمكن أن يكون هذا مفيدًا للغاية في السيناريوهات الشائعة التالية:

  • قد يحاول أحد المستخدمين ، الذي لم يتم تسجيل دخوله حاليًا ، الوصول إلى المحتوى الذي يتطلب تسجيل دخول المستخدم. ومع ذلك ، ربما يكون المستخدم قد نسي كلمة المرور الخاصة به ، وبالتالي يقوم بتشغيل تدفق إعادة تعيين كلمة المرور. في نهاية التدفق ، يتوقع المستخدم العودة إلى قسم التطبيق الذي كان يحاول الوصول إليه.

  • قد يعرض التطبيق فقط الوصول إلى الحسابات التي تم التحقق منها. على سبيل المثال ، قد تطلب رسالة إخبارية من المستخدم التحقق من بريده الإلكتروني قبل الاشتراك. سيخضع المستخدم لتدفق التحقق من البريد الإلكتروني ويتوقع العودة إلى التطبيق لإكمال اشتراكه.

  • في حالات أخرى ، ربما يكون المستخدم قد بدأ التدفق من أجهزته المحمولة ويتوقع بعد التحقق أن يعود إلى تطبيقه المحمول بدلاً من المتصفح.

تعد القدرة على تمرير الحالة عبر عنوان URL للمتابعة ميزة قوية يوفرها Firebase Auth والتي يمكن أن تعزز تجربة المستخدم بشكل كبير.

حالة المرور / متابعة URL في إجراءات البريد الإلكتروني

من أجل تمرير آمن على مواصلة URL، فإن المجال للURL تحتاج إلى اللائحة البيضاء في وحدة التحكم Firebase . ويتم ذلك في قسم مصادقة بإضافة هذا المجال إلى قائمة المجالات المسموح بها في إطار الدخول في علامة التبويب الطريقة إذا لم تكن هناك.

A firebase.auth.ActionCodeSettings يجب توفير عند إرسال رسالة بريد إلكتروني إعادة تعيين كلمة المرور أو البريد الإلكتروني التحقق المثال. تأخذ هذه الواجهة المعلمات التالية:

معامل نوع وصف
url سلسلة

يضبط الرابط (حالة / عنوان URL للمتابعة) الذي له معان مختلفة في سياقات مختلفة:

  • عندما تتم معالجة الارتباط في الحاجيات العمل على شبكة الإنترنت، وهذا هو الرابط العميق في continueUrl المعلمة الاستعلام.
  • عندما تتم معالجة الارتباط في التطبيق مباشرة، وهذا هو continueUrl المعلمة الاستعلام في الارتباط العميق للارتباط ديناميكي.
iOS ({bundleId: string} | غير محدد) يعيّن معرف حزمة iOS. سيحاول هذا فتح الرابط في تطبيق iOS إذا كان مثبتًا. يجب تسجيل تطبيق iOS في وحدة التحكم.
android ({packageName: string، installApp: منطقية | غير محدد ، الحد الأدنى للإصدار: string | undefined} | غير محدد) يعيّن اسم حزمة Android. سيحاول هذا فتح الرابط في تطبيق android إذا كان مثبتًا. إذا تم تمرير installApp ، فإنه يحدد ما إذا كان سيتم تثبيت تطبيق Android إذا كان الجهاز يدعمه ولم يكن التطبيق مثبتًا بالفعل. إذا تم توفير هذا الحقل بدون اسم packageName ، فسيتم طرح خطأ يوضح أنه يجب توفير اسم الحزمة بالاقتران مع هذا الحقل. إذا تم تحديد الإصدار الأدنى ، وتم تثبيت إصدار أقدم من التطبيق ، فسيتم نقل المستخدم إلى متجر Play لترقية التطبيق. يجب تسجيل تطبيق Android في وحدة التحكم.
handleCodeInApp (قيمة منطقية | غير محدد) ما إذا كان سيتم فتح ارتباط إجراء البريد الإلكتروني في تطبيق جوال أو رابط ويب أولاً. الافتراضي هو خطأ. عند التعيين على "صحيح" ، سيتم إرسال رابط رمز الإجراء كرابط عام أو رابط تطبيق Android وسيفتحه التطبيق إذا كان مثبتًا. في الحالة الخاطئة ، سيتم إرسال الرمز إلى أداة الويب أولاً ، ثم بعد ذلك ، سيتم إعادة التوجيه إلى التطبيق إذا تم تثبيته.
dynamicLinkDomain (سلسلة | غير محدد) يعيّن نطاق الارتباط الديناميكي (أو النطاق الفرعي) لاستخدامه للرابط الحالي إذا كان سيتم فتحه باستخدام روابط Firebase الديناميكية. نظرًا لأنه يمكن تكوين عدة مجالات ارتباط ديناميكي لكل مشروع ، فإن هذا الحقل يوفر القدرة على اختيار واحد بشكل صريح. إذا لم يتم توفير أي شيء ، فسيتم استخدام المجال الأول افتراضيًا.

يوضح المثال التالي كيفية إرسال رابط التحقق من البريد الالكتروني التي ستفتح في التطبيق المحمول لأول مرة باعتبارها Firebase الارتباط الحيوي باستخدام ديناميكية مخصصة نطاق رابط example.page.link (تطبيق iOS com.example.ios أو الروبوت التطبيق com.example.android حيث التطبيق سيتم تثبيت إن لم يكن بالفعل بتثبيت والحد الأدنى من الإصدار هو 12 ). سوف تحتوي على ارتباط عميق مواصلة URL حمولة https://www.example.com/?email=user@example.com .

var actionCodeSettings = {
  url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  // When multiple custom dynamic link domains are defined, specify which
  // one to use.
  dynamicLinkDomain: "example.page.link"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
  .then(function() {
    // Verification email sent.
  })
  .catch(function(error) {
    // Error occurred. Inspect error.code.
  });

يستخدم Firebase مصادقة Firebase دينامية سريعة عند إرسال رابط من المفترض أن يتم فتحها في تطبيقات الهاتف المتحرك. لاستخدام هذه الميزة ، يجب تكوين الروابط الديناميكية في Firebase Console.

  1. تفعيل روابط Firebase الديناميكية:

    1. في وحدة التحكم Firebase ، فتح الباب الحيوي الوصلات.
    2. إذا لم تكن قد وافقت بعد على شروط الروابط الديناميكية وأنشأت نطاق روابط ديناميكية ، فافعل ذلك الآن.

      إذا كنت قد أنشأت بالفعل مجال روابط ديناميكية ، فقم بتدوين ذلك. عادة ما يبدو مجال الروابط الديناميكية مثل المثال التالي:

      example.page.link

      ستحتاج إلى هذه القيمة عند تكوين تطبيق iOS أو Android لاعتراض الرابط الوارد.

  2. تكوين تطبيقات Android:

    1. إذا كنت تخطط للتعامل مع هذه الروابط من تطبيق Android الخاص بك ، فيجب تحديد اسم حزمة Android في إعدادات مشروع Firebase Console. بالإضافة إلى ذلك ، يجب توفير SHA-1 و SHA-256 لشهادة التطبيق.
    2. سوف تحتاج أيضا إلى تكوين فلتر الأهداف للارتباط عميق في حياتك AndroidManifest.xml الملف.
    3. لمعرفة المزيد عن هذا، تشير إلى تلقي تعليمات الروبوت دينامية سريعة .
  3. تكوين تطبيقات iOS:

    1. إذا كنت تخطط للتعامل مع هذه الروابط من تطبيق iOS الخاص بك ، فيجب تحديد معرف حزمة iOS في إعدادات مشروع Firebase Console. بالإضافة إلى ذلك ، يجب أيضًا تحديد معرف متجر التطبيقات ومعرف فريق مطوري Apple.
    2. ستحتاج أيضًا إلى تكوين مجال الارتباط العالمي FDL كمجال مرتبط في إمكانات التطبيق الخاص بك.
    3. إذا كنت تخطط لتوزيع تطبيقك على إصدارات iOS 8 وما دونها ، فستحتاج إلى تعيين معرف حزمة iOS الخاص بك كمخطط مخصص لعناوين URL الواردة.
    4. لمعرفة المزيد عن هذا، تشير إلى تلقي تعليمات دائرة الرقابة الداخلية دينامية سريعة .

التعامل مع إجراءات البريد الإلكتروني في تطبيق الويب

يمكنك تحديد ما إذا كنت تريد التعامل مع ارتباط رمز الإجراء من تطبيق ويب أولاً ثم إعادة التوجيه إلى صفحة ويب أخرى أو تطبيق جوال آخر بعد الانتهاء بنجاح ، بشرط أن يكون تطبيق الهاتف متاحًا. ويتم ذلك عن طريق وضع handleCodeInApp ل false في firebase.auth.ActionCodeSettings الكائن. على الرغم من أن معرّف حزمة iOS أو اسم حزمة Android غير مطلوبين ، فإن توفيرهما سيسمح للمستخدم بإعادة التوجيه مرة أخرى إلى التطبيق المحدد عند إكمال رمز إجراء البريد الإلكتروني.

عنوان URL للويب المستخدم هنا ، هو الذي تم تكوينه في قسم قوالب إجراءات البريد الإلكتروني. يتم توفير واحد افتراضي لجميع المشاريع. الرجوع إلى تخصيص معالجات البريد الإلكتروني لمعرفة المزيد حول كيفية تخصيص معالج عمل البريد الإلكتروني.

في هذه الحالة، وصلة ضمن continueUrl سوف المعلمة الاستعلام يكون الارتباط FDL الذي حمولة هو URL المحدد في ActionCodeSettings الكائن. بينما يمكنك اعتراض الارتباط الوارد من تطبيقك والتعامل معه دون أي تبعية إضافية ، فإننا نوصي باستخدام مكتبة عميل FDL لتحليل الارتباط العميق نيابةً عنك.

عند التعامل مع الإجراءات البريد الإلكتروني مثل التحقق من البريد الإلكتروني، رمز العمل من oobCode احتياجات المعلمة الاستعلام ليكون تحليل من الارتباط العميق ثم تطبيق عبر applyActionCode التغيير نافذة المفعول، أي البريد الإلكتروني ليتم التحقق منها.

التعامل مع إجراءات البريد الإلكتروني في تطبيق الهاتف المحمول

يمكنك تحديد ما إذا كنت تريد التعامل مع ارتباط رمز الإجراء داخل تطبيق الهاتف المحمول الخاص بك أولاً ، بشرط تثبيته. مع تطبيقات الروبوت، لديك أيضا القدرة على تحديد طريق android.installApp أن التطبيق ليتم تثبيتها إذا لم يتم تثبيت دعامات جهاز وأنها بالفعل. إذا تم النقر فوق الارتباط من جهاز لا يدعم تطبيق الهاتف المحمول ، فسيتم فتحه من صفحة ويب بدلاً من ذلك. ويتم ذلك عن طريق وضع handleCodeInApp إلى true في firebase.auth.ActionCodeSettings الكائن. يجب أيضًا تحديد اسم حزمة Android لتطبيق الهاتف المحمول أو معرف حزمة iOS.

عنوان URL الاحتياطي المستخدم هنا ، عندما لا يتوفر تطبيق جوال ، هو الذي تم تكوينه في قسم قوالب إجراءات البريد الإلكتروني. يتم توفير واحد افتراضي لجميع المشاريع. الرجوع إلى تخصيص معالجات البريد الإلكتروني لمعرفة المزيد حول كيفية تخصيص معالج عمل البريد الإلكتروني.

في هذه الحالة، أرسل رابط التطبيق المحمول للمستخدم سيكون حلقة وصل FDL الذي حمولة هو URL كود العمل، التي تم تكوينها في وحدة التحكم، مع المعلمات الاستعلام oobCode ، mode ، apiKey و continueUrl . هذا الأخير سيكون الأصلي URL المحدد في ActionCodeSettings الكائن. بينما يمكنك اعتراض الارتباط الوارد من تطبيقك والتعامل معه دون أي تبعية إضافية ، فإننا نوصي باستخدام مكتبة عميل FDL لتحليل الارتباط العميق نيابةً عنك. ويمكن تطبيق قانون العمل مباشرة من تطبيقات الهاتف المتحرك على غرار الطريقة التي التعامل معها من تدفق الويب موضح في معالجات تخصيص البريد الإلكتروني القسم.

عند التعامل مع الإجراءات البريد الإلكتروني مثل التحقق من البريد الإلكتروني، رمز العمل من oobCode احتياجات المعلمة الاستعلام ليكون تحليل من الارتباط العميق ثم تطبيق عبر applyActionCode التغيير نافذة المفعول، أي البريد الإلكتروني ليتم التحقق منها.