Catch up on everthing we announced at this year's Firebase Summit. Learn more

عبور از حالت در اقدامات ایمیل

هنگام ارسال اقدامات ایمیل برای بازنشانی رمز عبور یا تأیید ایمیل کاربر، می‌توانید وضعیت را از طریق URL ادامه دهید. این امکان را برای کاربر فراهم می کند تا پس از اتمام عمل به برنامه برگردد. علاوه بر این، می‌توانید تعیین کنید که آیا پیوند اقدام ایمیل به‌جای یک صفحه وب، مستقیماً از یک برنامه تلفن همراه نصب می‌شود یا خیر.

این می تواند در سناریوهای رایج زیر بسیار مفید باشد:

  • کاربری که در حال حاضر وارد سیستم نشده است، ممکن است در تلاش برای دسترسی به محتوایی باشد که کاربر باید وارد سیستم شود. با این حال، کاربر ممکن است رمز عبور خود را فراموش کرده باشد و بنابراین جریان رمز عبور بازنشانی را آغاز کند. در پایان جریان، کاربر انتظار دارد به بخشی از برنامه که می‌خواست به آن دسترسی پیدا کند، برگردد.

  • ممکن است یک برنامه فقط به حساب های تأیید شده دسترسی داشته باشد. به عنوان مثال، یک خبرنامه ممکن است از کاربر بخواهد که ایمیل خود را قبل از عضویت تأیید کند. کاربر جریان تأیید ایمیل را طی می کند و انتظار دارد برای تکمیل اشتراک خود به برنامه برگردد.

  • در موارد دیگر، کاربر ممکن است جریان را از دستگاه تلفن همراه خود شروع کرده باشد و پس از تأیید انتظار داشته باشد که به جای مرورگر به برنامه تلفن همراه خود بازگردد.

داشتن قابلیت انتقال حالت از طریق URL ادامه دهنده، ویژگی قدرتمندی است که Firebase Auth ارائه می کند و می تواند تجربه کاربر را به میزان قابل توجهی افزایش دهد.

عبور URL وضعیت/ادامه در اقدامات ایمیل

به منظور ایمن تصویب ادامه آدرس، دامنه را برای URL نیاز به در لیست سفید کنسول فایربیس . این است که در بخش احراز هویت با اضافه کردن این دامنه به لیستی از دامنه های مجاز تحت ثبت نام در تب روش انجام می شود اگر در حال حاضر وجود ندارد.

ActionCodeSettings عنوان مثال نیاز هنگام ارسال یک ایمیل تنظیم مجدد رمز عبور و یا یک ایمیل تایید ارائه شود. می توان آن را با همراه ایجاد ActionCodeSettings.Builder کلاس که شامل روش های زیر:

روش شرح
setUrl(String url)

پیوند (وضعیت/ادامه URL) را تنظیم می کند که معانی مختلفی در زمینه های مختلف دارد:

  • زمانی که لینک در ویدجت عمل وب به کار گرفته، این از لینک عمیق در است continueUrl پارامتر پرس و جو.
  • زمانی که لینک در برنامه به کار گرفته به طور مستقیم، این است continueUrl پارامتر جستجو در پیوند عمیق از پیوند پویا.
setIOSBundleId(String iOSBundleId) شناسه بسته نرم افزاری iOS را تنظیم می کند. در صورت نصب، سعی می شود پیوند را در یک برنامه iOS باز کند. برنامه iOS باید در کنسول ثبت شود.
setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) نام بسته اندروید را تنظیم می کند. با این کار سعی می شود در صورت نصب لینک در یک برنامه اندرویدی باز شود. اگر installIfNotAvailable تنظیم شده است true ، آن را مشخص می کند که آیا برای نصب برنامه های آندروید اگر حمایت دستگاه آن و برنامه از قبل نصب نشده است. اگر minimalVersion مشخص شده باشد و نسخه قدیمی‌تری از برنامه نصب شده باشد، کاربر برای ارتقای برنامه به فروشگاه Play منتقل می‌شود. برنامه اندروید باید در کنسول ثبت شود.
setHandleCodeInApp(boolean status) آیا پیوند اقدام ایمیل ابتدا در یک برنامه تلفن همراه باز می شود یا یک پیوند وب. حالت پیش فرض غلط است. وقتی روی true تنظیم شود، پیوند کد اقدام به عنوان پیوند جهانی یا پیوند برنامه Android ارسال می‌شود و در صورت نصب توسط برنامه باز می‌شود. در صورت نادرست، کد ابتدا به ویجت وب ارسال می شود و سپس در صورت نصب به برنامه ادامه می دهد.
setDynamicLinkDomain(String dynamicLinkDomain) دامنه پیوند پویا (یا زیر دامنه) را برای استفاده برای پیوند فعلی تنظیم می کند، اگر قرار است با استفاده از پیوندهای دینامیک Firebase باز شود. از آنجایی که چندین دامنه پیوند پویا را می توان در هر پروژه پیکربندی کرد، این فیلد امکان انتخاب صریح یکی را فراهم می کند. اگر هیچ یک ارائه نشده باشد، اولین دامنه به طور پیش فرض استفاده می شود.

در مثال زیر، نشان میدهد که چگونه به ارسال یک لینک تایید ایمیل که در یک برنامه تلفن همراه باز خواهد شد برای اولین بار به عنوان یک فایربیس پیوند پویا (برنامه iOS com.example.ios یا آندروید برنامه com.example.android ). از لینک عمیق را شامل خواهد شد ادامه URL محموله https://www.example.com/?email=user@example.com .

جاوا

FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseUser user = auth.getCurrentUser();

String url = "http://www.example.com/verify?uid=" + user.getUid();
ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder()
        .setUrl(url)
        .setIOSBundleId("com.example.ios")
        // The default for this is populated with the current android package name.
        .setAndroidPackageName("com.example.android", false, null)
        .build();

user.sendEmailVerification(actionCodeSettings)
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "Email sent.");
                }
            }
        });

کاتلین + KTX

val auth = Firebase.auth
val user = auth.currentUser!!

val url = "http://www.example.com/verify?uid=" + user.uid
val actionCodeSettings = ActionCodeSettings.newBuilder()
        .setUrl(url)
        .setIOSBundleId("com.example.ios")
        // The default for this is populated with the current android package name.
        .setAndroidPackageName("com.example.android", false, null)
        .build()

user.sendEmailVerification(actionCodeSettings)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Log.d(TAG, "Email sent.")
            }
        }

فایربیس تایید استفاده از فایربیس پویا لینک در هنگام ارسال یک لینک است که به معنای در یک برنامه تلفن همراه باز می شود. برای استفاده از این ویژگی، پیوندهای پویا باید در کنسول Firebase پیکربندی شوند.

  1. فعال کردن Firebase Dynamic Links:

    1. در فایربیس کنسول ، باز کردن بخش پویا لینک.
    2. اگر هنوز شرایط Dynamic Links را نپذیرفته اید و دامنه Dynamic Links ایجاد نکرده اید، اکنون این کار را انجام دهید.

      اگر قبلاً یک دامنه پیوندهای پویا ایجاد کرده‌اید، به آن توجه داشته باشید. یک دامنه پیوندهای پویا معمولاً مانند مثال زیر است:

      example.page.link

      هنگامی که برنامه Apple یا Android خود را برای رهگیری پیوند ورودی پیکربندی می کنید، به این مقدار نیاز خواهید داشت.

  2. پیکربندی برنامه های اندروید:

    1. اگر قصد دارید این پیوندها را از برنامه Android خود مدیریت کنید، نام بسته Android باید در تنظیمات پروژه Firebase Console مشخص شود. علاوه بر این، SHA-1 و SHA-256 گواهی درخواست باید ارائه شود.
    2. همچنین باید فیلتر هدف را برای پیوند عمیق موجود در فایل AndroidManifest.xml خود پیکربندی کنید.
    3. برای اطلاعات بیشتر در این، برای اشاره دریافت دستورالعمل پویا لینک آندروید .
  3. پیکربندی برنامه های iOS:

    1. اگر قصد دارید این پیوندها را از برنامه iOS خود مدیریت کنید، شناسه بسته iOS باید در تنظیمات پروژه Firebase Console مشخص شود. علاوه بر این، شناسه App Store و Apple Developer Team ID نیز باید مشخص شود.
    2. همچنین باید دامنه پیوند جهانی FDL را به عنوان یک دامنه مرتبط در قابلیت های برنامه خود پیکربندی کنید.
    3. اگر قصد دارید برنامه خود را در نسخه های iOS 8 و پایین تر توزیع کنید، باید ID بسته iOS خود را به عنوان یک طرح سفارشی برای URL های ورودی تنظیم کنید.
    4. برای اطلاعات بیشتر در این، برای اشاره دریافت دستورالعملهای iOS پویا لینک .

مدیریت اقدامات ایمیل در یک برنامه وب

می‌توانید تعیین کنید که آیا می‌خواهید ابتدا پیوند کد عمل را از یک برنامه وب مدیریت کنید و سپس پس از تکمیل موفقیت‌آمیز به صفحه وب یا برنامه تلفن همراه دیگر هدایت شوید، مشروط بر اینکه برنامه تلفن همراه در دسترس باشد. این است که با فراخوانی انجام setHandleCodeInApp(false) در ActionCodeSettings.Builder شی. اگرچه شناسه بسته iOS یا نام بسته Android مورد نیاز نیست، ارائه آنها به کاربر این امکان را می دهد که در تکمیل کد اقدام ایمیلی به برنامه مشخص شده بازگردانده شود.

URL وب مورد استفاده در اینجا، همانی است که در بخش الگوهای اقدام ایمیل پیکربندی شده است. یک پیش فرض برای همه پروژه ها ارائه شده است. برای اشاره سفارشی گرداننده ایمیل برای کسب اطلاعات بیشتر در مورد نحوه سفارشی کنترل عمل ایمیل.

در این مورد، از لینک در continueUrl پارامتر جستجو خواهد شد یک لینک FDL که محموله است URL مشخص شده در ActionCodeSettings شی. در حالی که می‌توانید پیوند ورودی از برنامه خود را بدون وابستگی اضافی رهگیری و مدیریت کنید، توصیه می‌کنیم از کتابخانه مشتری FDL برای تجزیه پیوند عمیق برای شما استفاده کنید.

هنگام مدیریت عملیات ایمیل مانند تایید ایمیل، کد عمل از oobCode نیازهای پارامتر پرس و جو به از پیوند عمیق تجزیه شود و سپس از طریق اعمال applyActionCode برای تغییر را به اثر، یعنی ایمیل به تأیید شده است.

مدیریت اقدامات ایمیل در یک برنامه تلفن همراه

می‌توانید تعیین کنید که آیا می‌خواهید ابتدا پیوند کد عمل را در برنامه تلفن همراه خود مدیریت کنید، مشروط بر اینکه نصب شده باشد. با برنامه های کاربردی آندروید، شما همچنین توانایی برای مشخص از طریق دارند installIfNotAvailable بولی که این برنامه به نصب اگر حمایت دستگاه آن و آن را در حال حاضر نصب نشده است. اگر روی پیوند از دستگاهی که از برنامه تلفن همراه پشتیبانی نمی کند کلیک شود، به جای آن از یک صفحه وب باز می شود. این است که با فراخوانی انجام setHandleCodeInApp(true) در ActionCodeSettings.Builder شی. نام بسته Android یا شناسه بسته iOS برنامه تلفن همراه نیز باید مشخص شود.

URL وب بازگشتی که در اینجا استفاده می شود، زمانی که هیچ برنامه تلفن همراه در دسترس نیست، همانی است که در بخش الگوهای اقدام ایمیل پیکربندی شده است. یک پیش فرض برای همه پروژه ها ارائه شده است. برای اشاره سفارشی گرداننده ایمیل برای کسب اطلاعات بیشتر در مورد نحوه سفارشی کنترل عمل ایمیل.

در این مورد، از لینک نرم افزار تلفن همراه به کاربر فرستاده می شود یک لینک FDL که محموله URL کد عمل است، پیکربندی شده در کنسول، با پارامترهای پرس و جو oobCode ، mode ، apiKey و continueUrl . در حالت دوم خواهد بود که اصلی URL مشخص شده در ActionCodeSettings شی. در حالی که می‌توانید پیوند ورودی از برنامه خود را بدون وابستگی اضافی رهگیری و مدیریت کنید، توصیه می‌کنیم از کتابخانه مشتری FDL برای تجزیه پیوند عمیق برای شما استفاده کنید. کد عمل را می توان به طور مستقیم از نرم افزار تلفن همراه شبیه به آن است که از جریان وب شرح داده شده در به کار گرفته اعمال گرداننده ایمیل سفارشی بخش.

هنگام مدیریت عملیات ایمیل مانند تایید ایمیل، کد عمل از oobCode نیازهای پارامتر پرس و جو به از پیوند عمیق تجزیه شود و سپس از طریق اعمال applyActionCode برای تغییر را به اثر، یعنی ایمیل به تأیید شده است.