Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Melewati Status dalam Tindakan Email

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Anda dapat meneruskan status melalui URL lanjutan saat mengirim tindakan email untuk penyetelan ulang sandi atau memverifikasi email pengguna. Ini memberi pengguna kemampuan untuk kembali ke aplikasi setelah tindakan selesai. Selain itu, Anda dapat menentukan apakah akan menangani tautan tindakan email langsung dari aplikasi seluler saat dipasang, bukan dari halaman web.

Ini bisa sangat berguna dalam skenario umum berikut:

  • Seorang pengguna, yang saat ini tidak masuk, mungkin mencoba mengakses konten yang mengharuskan pengguna untuk masuk. Namun, pengguna mungkin lupa kata sandinya dan oleh karena itu memicu aliran pengaturan ulang kata sandi. Di akhir alur, pengguna berharap untuk kembali ke bagian aplikasi yang mereka coba akses.

  • Aplikasi hanya dapat menawarkan akses ke akun terverifikasi. Misalnya, buletin mungkin mengharuskan pengguna untuk memverifikasi email mereka sebelum berlangganan. Pengguna akan melalui alur verifikasi email dan berharap untuk kembali ke aplikasi untuk menyelesaikan langganan mereka.

  • Dalam kasus lain, pengguna mungkin telah memulai alur dari perangkat seluler mereka dan berharap setelah verifikasi untuk kembali ke aplikasi seluler mereka alih-alih browser.

Memiliki kemampuan untuk meneruskan status melalui URL lanjutan adalah fitur canggih yang disediakan oleh Firebase Auth dan yang dapat meningkatkan pengalaman pengguna secara signifikan.

Melewati status/lanjutkan URL dalam tindakan email

Untuk meneruskan URL lanjutan dengan aman, domain untuk URL harus dimasukkan ke daftar putih di Firebase console . Ini dilakukan di bagian Otentikasi dengan menambahkan domain ini ke daftar Domain resmi di bawah tab Metode masuk jika belum ada di sana.

Instance ActionCodeSettings perlu diberikan saat mengirim email pengaturan ulang kata sandi atau email verifikasi. Itu dapat dibuat dengan kelas ActionCodeSettings.Builder terkait yang berisi metode berikut:

metode Keterangan
setUrl(String url)

Setel tautan (status/lanjutkan URL) yang memiliki arti berbeda dalam konteks berbeda:

  • Saat tautan ditangani di widget tindakan web, ini adalah tautan dalam di parameter kueri continueUrl .
  • Saat tautan ditangani di aplikasi secara langsung, ini adalah parameter kueri continueUrl di tautan dalam Tautan Dinamis.
setIOSBundleId(String iOSBundleId) Menyetel ID bundel iOS. Ini akan mencoba membuka tautan di aplikasi iOS jika sudah terpasang. Aplikasi iOS harus didaftarkan di Konsol.
setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) Menyetel nama paket Android. Ini akan mencoba membuka tautan di aplikasi Android jika sudah terpasang. Jika installIfNotAvailable disetel ke true , ini menentukan apakah akan menginstal aplikasi Android jika perangkat mendukungnya dan aplikasi belum diinstal. Jika minimumVersion ditentukan, dan versi aplikasi yang lebih lama diinstal, pengguna akan dibawa ke Play Store untuk meningkatkan versi aplikasi. Aplikasi Android harus terdaftar di Konsol.
setHandleCodeInApp(boolean status) Apakah tautan tindakan email akan dibuka di aplikasi seluler atau tautan web terlebih dahulu. Nilai defaultnya salah. Jika disetel ke true, tautan kode tindakan akan dikirim sebagai Tautan Universal atau Tautan Aplikasi Android dan akan dibuka oleh aplikasi jika dipasang. Dalam kasus yang salah, kode akan dikirim ke widget web terlebih dahulu dan kemudian melanjutkan akan dialihkan ke aplikasi jika diinstal.
setDynamicLinkDomain(String dynamicLinkDomain) Menyetel domain tautan dinamis (atau subdomain) yang akan digunakan untuk tautan saat ini jika akan dibuka menggunakan Tautan Dinamis Firebase. Karena beberapa domain tautan dinamis dapat dikonfigurasi per proyek, bidang ini menyediakan kemampuan untuk memilih satu secara eksplisit. Jika tidak ada yang disediakan, domain pertama digunakan secara default.

Contoh berikut mengilustrasikan cara mengirim tautan verifikasi email yang akan dibuka di aplikasi seluler terlebih dahulu sebagai Tautan Dinamis Firebase (aplikasi iOS com.example.ios atau aplikasi Android com.example.android ). Tautan dalam akan berisi muatan URL lanjutan https://www.example.com/?email=user@example.com .

Java

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.");
                }
            }
        });

Kotlin+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 Auth menggunakan Firebase Dynamic Links saat mengirim tautan yang dimaksudkan untuk dibuka di aplikasi seluler. Untuk menggunakan fitur ini, Dynamic Links perlu dikonfigurasi di Firebase Console.

  1. Aktifkan Tautan Dinamis Firebase:

    1. Di Firebase console , buka bagian Dynamic Links .
    2. Jika Anda belum menerima persyaratan Dynamic Links dan membuat domain Dynamic Links, lakukan sekarang.

      Jika Anda sudah membuat domain Dynamic Links, perhatikan itu. Domain Dynamic Links biasanya terlihat seperti contoh berikut:

      example.page.link

      Anda akan memerlukan nilai ini saat mengonfigurasi aplikasi Apple atau Android Anda untuk mencegat tautan masuk.

  2. Mengonfigurasi aplikasi Android:

    1. Jika Anda berencana menangani tautan ini dari aplikasi Android Anda, nama paket Android harus ditentukan di setelan proyek Konsol Firebase. Selain itu, SHA-1 dan SHA-256 dari sertifikat aplikasi perlu disediakan.
    2. Anda juga perlu mengonfigurasi filter maksud untuk tautan dalam di file AndroidManifest.xml Anda.
    3. Untuk mengetahui lebih lanjut tentang ini, lihat petunjuk Menerima Tautan Dinamis Android .
  3. Mengonfigurasi aplikasi iOS:

    1. Jika Anda berencana menangani tautan ini dari aplikasi iOS, ID bundel iOS harus ditentukan di setelan proyek Firebase Console. Selain itu, ID App Store dan ID Tim Pengembang Apple juga perlu ditentukan.
    2. Anda juga perlu mengonfigurasi domain tautan universal FDL sebagai Domain Terkait dalam kemampuan aplikasi Anda.
    3. Jika Anda berencana untuk mendistribusikan aplikasi Anda ke iOS versi 8 dan yang lebih rendah, Anda harus menyetel ID bundel iOS Anda sebagai skema khusus untuk URL yang masuk.
    4. Untuk informasi lebih lanjut tentang ini, lihat instruksi Menerima Tautan Dinamis iOS .

Menangani tindakan email dalam aplikasi web

Anda dapat menentukan apakah Anda ingin menangani tautan kode tindakan dari aplikasi web terlebih dahulu dan kemudian mengarahkan ulang ke halaman web atau aplikasi seluler lain setelah berhasil diselesaikan, asalkan aplikasi seluler tersedia. Ini dilakukan dengan memanggil setHandleCodeInApp(false) di objek ActionCodeSettings.Builder . Meskipun ID bundel iOS atau nama paket Android tidak diperlukan, menyediakannya akan memungkinkan pengguna untuk mengarahkan kembali ke aplikasi yang ditentukan pada penyelesaian kode tindakan email.

URL web yang digunakan di sini, adalah yang dikonfigurasi di bagian template tindakan email. Yang default disediakan untuk semua proyek. Lihat menyesuaikan penangan email untuk mempelajari lebih lanjut tentang cara menyesuaikan penangan tindakan email.

Dalam hal ini, tautan dalam parameter kueri continueUrl akan menjadi tautan FDL yang muatannya adalah URL yang ditentukan dalam objek ActionCodeSettings . Meskipun Anda dapat mencegat dan menangani tautan masuk dari aplikasi Anda tanpa ketergantungan tambahan, sebaiknya gunakan pustaka klien FDL untuk mengurai tautan dalam untuk Anda.

Saat menangani tindakan email seperti verifikasi email, kode tindakan dari parameter kueri oobCode perlu diuraikan dari tautan dalam dan kemudian diterapkan melalui applyActionCode agar perubahan diterapkan, yaitu email untuk diverifikasi.

Menangani tindakan email dalam aplikasi seluler

Anda dapat menentukan apakah Anda ingin menangani tautan kode tindakan dalam aplikasi seluler Anda terlebih dahulu, asalkan sudah diinstal. Dengan aplikasi Android, Anda juga memiliki kemampuan untuk menentukan melalui boolean installIfNotAvailable bahwa aplikasi akan diinstal jika perangkat mendukungnya dan belum diinstal. Jika tautan diklik dari perangkat yang tidak mendukung aplikasi seluler, tautan tersebut akan dibuka dari halaman web. Ini dilakukan dengan memanggil setHandleCodeInApp(true) di objek ActionCodeSettings.Builder . Nama paket Android atau ID bundel iOS aplikasi seluler juga perlu ditentukan.

URL web cadangan yang digunakan di sini, ketika tidak ada aplikasi seluler yang tersedia, adalah yang dikonfigurasi di bagian template tindakan email. Yang default disediakan untuk semua proyek. Lihat menyesuaikan penangan email untuk mempelajari lebih lanjut tentang cara menyesuaikan penangan tindakan email.

Dalam hal ini, tautan aplikasi seluler yang dikirim ke pengguna akan menjadi tautan FDL yang muatannya adalah URL kode tindakan, yang dikonfigurasi di Konsol, dengan parameter kueri oobCode , mode , apiKey , dan continueUrl . Yang terakhir akan menjadi URL asli yang ditentukan dalam objek ActionCodeSettings . Meskipun Anda dapat mencegat dan menangani tautan masuk dari aplikasi Anda tanpa ketergantungan tambahan, sebaiknya gunakan pustaka klien FDL untuk mengurai tautan dalam untuk Anda. Kode tindakan dapat diterapkan langsung dari aplikasi seluler yang serupa dengan cara penanganannya dari alur web yang dijelaskan di bagian menyesuaikan penangan email .

Saat menangani tindakan email seperti verifikasi email, kode tindakan dari parameter kueri oobCode perlu diuraikan dari tautan dalam dan kemudian diterapkan melalui applyActionCode agar perubahan diterapkan, yaitu email untuk diverifikasi.