Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

E-posta İşlemlerinde Geçiş Durumu

Parola sıfırlamaları için e-posta eylemleri gönderirken veya bir kullanıcının e-postasını doğrularken durumu devam eden bir URL yoluyla iletebilirsiniz. Bu, kullanıcı işlem tamamlandıktan sonra uygulamaya geri döndürülmesini sağlar. Ayrıca, e-posta işlem bağlantısının web sayfası yerine yüklendiğinde doğrudan mobil uygulamadan işlenip işlenmeyeceğini belirleyebilirsiniz.

Bu, aşağıdaki yaygın senaryolarda son derece yararlı olabilir:

  • Şu anda oturum açmamış bir kullanıcı, kullanıcının oturum açmasını gerektiren içeriğe erişmeye çalışıyor olabilir. Ancak, kullanıcı parolasını unutmuş ve bu nedenle parola sıfırlama akışını tetiklemiş olabilir. Akış sonunda kullanıcı, uygulamanın erişmeye çalıştığı bölümüne geri dönmeyi bekler.

  • Bir uygulama yalnızca doğrulanmış hesaplara erişim sunabilir. Örneğin, bir bülten uygulaması kullanıcının abone olmadan önce e-postalarını doğrulamasını gerektirebilir. Kullanıcı e-posta doğrulama akışından geçer ve aboneliklerini tamamlamak için uygulamaya geri gönderilmesini bekler.

  • Genel olarak, bir kullanıcı bir iOS uygulamasında şifre sıfırlama veya e-posta doğrulama akışına başladığında uygulama içindeki akışı tamamlamayı bekler; devam URL'si üzerinden durum geçirme olanağı bunu mümkün kılar.

Devam URL'siyle durum geçirme özelliğine sahip olmak, Firebase Auth'un sağladığı ve kullanıcı deneyimini önemli ölçüde artırabilecek güçlü bir özelliktir.

E-posta işlemlerinde durum / devam URL'sini geçirme

Devam eden bir URL'yi güvenli bir şekilde geçirmek için URL'nin alan adının Firebase konsolunda beyaz listeye eklenmesi gerekir. Bu, Kimlik Doğrulama bölümünde, bu etki alanı, henüz orada değilse, Oturum Açma yöntemi sekmesi altındaki Yetkili etki alanları listesine ekleyerek yapılır.

Parola sıfırlama e-postası veya doğrulama e-postası gönderilirken bir FIRActionCodeSettings örneği sağlanmalıdır. Bu arayüz aşağıdaki parametreleri alır:

hızlı

Parametre tip Açıklama
URL sicim

Farklı bağlamlarda farklı anlamları olan bağlantıyı (eyalet / devam URL'si) ayarlar:

  • Bağlantı, web eylem widget'larında işlendiğinde, bu continueUrl sorgu parametresindeki derin bağlantıdır.
  • Bağlantı doğrudan uygulamada işlendiğinde, bu Dinamik Bağlantı'nın derin bağlantısındaki continueUrl sorgu parametresidir.
iOSBundleID sicim İOS paket kimliğini ayarlar. Bu, yüklüyse bağlantıyı bir iOS uygulamasında açmaya çalışır. İOS uygulamasının Konsolda kayıtlı olması gerekir. Paket Kimliği belirtilmezse, bu alanın değeri Uygulamanın ana paketinin paket kimliğine ayarlanır.
androidPackageName sicim Android paketinin adını ayarlar. Bu, yüklüyse bağlantıyı bir android uygulamasında açmaya çalışacaktır.
androidInstallIfNotAvailable Bool Cihaz destekliyorsa ve uygulama önceden yüklenmemişse Android uygulamasının yüklenip yüklenmeyeceğini belirtir. Bu alan bir packageName olmadan sağlanırsa, packageName öğesinin bu alanla birlikte sağlanması gerektiğini açıklayan bir hata atılır.
androidMinimumVersion sicim Uygulamanın bu akışta desteklenen minimum sürümü. MinimumVersion belirtilirse ve uygulamanın eski bir sürümü yüklüyse, kullanıcı uygulamayı yükseltmek için Play Store'a götürülür. Android uygulamasının Konsolda kayıtlı olması gerekir.
handleCodeInApp Bool E-posta işlemi bağlantısının önce bir mobil uygulamada mı yoksa web bağlantısında mı açılacağı. Varsayılan, false değeridir. True değerine ayarlandığında, eylem kodu bağlantısı Evrensel Bağlantı veya Android Uygulama Bağlantısı olarak gönderilir ve yüklendiyse uygulama tarafından açılır. Yanlış durumda, kod önce web widget'ına gönderilir ve sonra devam edildiğinde uygulamaya yönlendirilir.
dynamicLinkDomain sicim Firebase Dinamik Bağlantıları kullanılarak açılacaksa, geçerli bağlantı için kullanılacak dinamik bağlantı etki alanını (veya alt etki alanını) ayarlar. Proje başına birden çok dinamik bağlantı alanı yapılandırılabildiğinden, bu alan açıkça bir tane seçebilmenizi sağlar. Hiçbiri belirtilmezse, ilk etki alanı varsayılan olarak kullanılır.

Objective-C

Parametre tip Açıklama
URL NSString

Farklı bağlamlarda farklı anlamları olan bağlantıyı (eyalet / devam URL'si) ayarlar:

  • Bağlantı, web eylem widget'larında işlendiğinde, bu continueUrl sorgu parametresindeki derin bağlantıdır.
  • Bağlantı doğrudan uygulamada işlendiğinde, bu Dinamik Bağlantı'nın derin bağlantısındaki continueUrl sorgu parametresidir.
iOSBundleID NSString İOS paket kimliğini ayarlar. Bu, yüklüyse bağlantıyı bir iOS uygulamasında açmaya çalışır. İOS uygulamasının Konsolda kayıtlı olması gerekir.
androidPackageName NSString Android paketinin adını ayarlar. Bu, yüklüyse bağlantıyı bir android uygulamasında açmaya çalışacaktır.
androidInstallIfNotAvailable BOOL cihaz destekliyorsa ve uygulama henüz yüklenmemişse Android uygulamasının yüklenip yüklenmeyeceğini belirtir. Bu alan bir packageName olmadan sağlanırsa, packageName öğesinin bu alanla birlikte sağlanması gerektiğini açıklayan bir hata atılır.
androidMinimumVersion NSString Uygulamanın bu akışta desteklenen minimum sürümü. MinimumVersion belirtilirse ve uygulamanın eski bir sürümü yüklüyse, kullanıcı uygulamayı yükseltmek için Play Store'a götürülür. Android uygulamasının Konsolda kayıtlı olması gerekir.
handleCodeInApp BOOL E-posta işlemi bağlantısının önce bir mobil uygulamada mı yoksa web bağlantısında mı açılacağı. Varsayılan, false değeridir. True değerine ayarlandığında, eylem kodu bağlantısı Evrensel Bağlantı veya Android Uygulama Bağlantısı olarak gönderilir ve yüklendiyse uygulama tarafından açılır. Yanlış durumda, kod önce web widget'ına gönderilir ve ardından devam edildiğinde uygulamaya yönlendirilir.
dynamicLinkDomain NSString Firebase Dinamik Bağlantıları kullanılarak açılacaksa, geçerli bağlantı için kullanılacak dinamik bağlantı etki alanını (veya alt etki alanını) ayarlar. Proje başına birden çok dinamik bağlantı alanı yapılandırılabildiğinden, bu alan açıkça bir tane seçebilmenizi sağlar. Hiçbiri belirtilmezse, ilk etki alanı varsayılan olarak kullanılır.

Aşağıdaki örnek, özel dinamik bağlantı etki alanı example.page.link (iOS uygulaması com.example.ios veya Android uygulaması com.example.android kullanılarak önce bir mobil uygulamada Firebase Dinamik Bağlantısı olarak açılacak bir e-posta doğrulama bağlantısının nasıl gönderileceğini gösterir com.example.android zaten yüklü değilse uygulamanın yüklenecek ve minimum sürüm 12 ). Derin bağlantı devam URL yükü https://www.example.com/?email=user@example.com içerecektir.

hızlı


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,
                                         minumumVersion:"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 Auth, bir mobil uygulamada açılması amaçlanan bir bağlantı gönderirken Firebase Dinamik Bağlantılarını kullanır. Bu özelliği kullanmak için Firebase Konsolunda Dinamik Bağlantıların yapılandırılması gerekir.

  1. Firebase Dinamik Bağlantılarını Etkinleştir:

    1. Firebase konsolunda Dinamik Bağlantılar bölümünü açın.
    2. Dinamik Bağlantılar koşullarını henüz kabul etmediyseniz ve bir Dinamik Bağlantılar etki alanı oluşturmadıysanız, şimdi yapın.

      Önceden bir Dinamik Bağlantılar etki alanı oluşturduysanız, buna dikkat edin. Dinamik Bağlantılar etki alanı genellikle aşağıdaki örneğe benzer:

      example.page.link

      İOS veya Android uygulamanızı gelen bağlantıyı kesecek şekilde yapılandırdığınızda bu değere ihtiyacınız olacaktır.

  2. Android uygulamalarını yapılandırma:

    1. Bu bağlantıları Android uygulamanızdan yönetmeyi planlıyorsanız, Android paket adının Firebase Konsolu proje ayarlarında belirtilmesi gerekir. Ayrıca, uygulama sertifikasının SHA-1 ve SHA-256'sının sağlanması gerekir.
    2. Ayrıca AndroidManifest.xml dosyanızdaki derin bağlantı için niyet filtresini yapılandırmanız gerekecektir.
    3. Bununla ilgili daha fazla bilgi için Android Dinamik Bağlantıları Alma talimatlarına bakın .
  3. İOS uygulamalarını yapılandırma:

    1. Bu bağlantıları iOS uygulamanızdan yönetmeyi planlıyorsanız, iOS paket kimliğinin Firebase Konsolu proje ayarlarında belirtilmesi gerekir. Ayrıca, App Store Kimliği ve Apple Developer Team ID'nin de belirtilmesi gerekir.
    2. Ayrıca, uygulama özelliklerinizde FDL evrensel bağlantı etki alanını İlişkili Etki Alanı olarak yapılandırmanız gerekir.
    3. Uygulamanızı iOS 8 ve sonraki sürümlere dağıtmayı planlıyorsanız, iOS paket kimliğinizi gelen URL'ler için özel bir şema olarak ayarlamanız gerekir.
    4. Bununla ilgili daha fazla bilgi için iOS Dinamik Bağlantıları Alma talimatlarına bakın .

Bir web uygulamasında e-posta işlemlerini işleme

Eylem kodu bağlantısını önce bir web uygulamasından işlemek isteyip istemediğinizi belirleyebilir ve ardından başarılı bir şekilde tamamlandıktan sonra, mobil uygulama varsa başka bir web sayfasına veya mobil uygulamaya yönlendirebilirsiniz. Bu ayarlanarak yapılır handleCodeInApp için false olarak FIRActionCodeSettings (Obj C) veya ActionCodeSettings (Swift) nesne. Bir iOS paket kimliği veya Android paket adı gerekli olmamakla birlikte, bunların sağlanması, kullanıcının e-posta eylem kodu tamamlandığında belirtilen uygulamaya geri yönlendirmesine izin verecektir.

Burada kullanılan web URL'si, e-posta işlemi şablonları bölümünde yapılandırılan URL'dir. Tüm projeler için varsayılan bir tane hazırlanmıştır. E -posta eylem işleyicisini özelleştirme hakkında daha fazla bilgi için e-posta işleyicilerini özelleştirme konusuna bakın.

Bu durumda, continueURL sorgu parametresi içindeki bağlantı, yükü ActionCodeSettings nesnesinde belirtilen URL olan bir FDL bağlantısı olacaktır. Ek bağımlılık olmadan uygulamanızdan gelen bağlantıyı kesebilir ve işleyebilirsiniz, ancak derin bağlantıyı sizin için ayrıştırmak için FDL istemci kitaplığını kullanmanızı öneririz.

E-posta doğrulaması gibi e-posta eylemlerini işlerken, oobCode sorgu parametresinden eylem kodunun derin bağlantıdan ayrıştırılması ve daha sonra değişikliğin etkili olması için, örneğin e-postanın doğrulanması için applyActionCode aracılığıyla uygulanması gerekir.

Mobil uygulamada e-posta işlemlerini işleme

Yüklü olması koşuluyla, ilk önce mobil uygulamanızdaki eylem kodu bağlantısını işlemek isteyip istemediğinizi belirleyebilirsiniz. Android uygulamalarında, androidInstallIfNotAvailable aracılığıyla cihaz destekliyorsa ve zaten yüklü değilse uygulamanın androidInstallIfNotAvailable belirtebilirsiniz. Bağlantı, mobil uygulamayı desteklemeyen bir cihazdan tıklanırsa, bunun yerine bir web sayfasından açılır. Bu ayar yapılır handleCodeInApp için true de FIRActionCodeSettings (Obj C) veya ActionCodeSettings (Swift) nesne. Mobil uygulamanın Android paket adı veya iOS paket kimliğinin de belirtilmesi gerekir. Mobil uygulama mevcut olmadığında burada kullanılan yedek web URL'si, e-posta işlemi şablonları bölümünde yapılandırılan URL'dir. Tüm projeler için varsayılan bir tane hazırlanmıştır. E -posta eylem işleyicisini özelleştirme hakkında daha fazla bilgi için e-posta işleyicilerini özelleştirme konusuna bakın.

Bu durumda, kullanıcıya gönderilen mobil uygulama bağlantısı, yükü Konsolda yapılandırılan eylem kodu URL'si olan oobCode , mode , apiKey ve continueUrl sorgu parametreleriyle bir FDL bağlantısı olacaktır. İkincisi, FIRActionCodeSettings (Obj-C) veya ActionCodeSettings (Swift) nesnesinde belirtilen orijinal URL olacaktır. Ek bağımlılık olmadan uygulamanızdan gelen bağlantıyı kesebilir ve işleyebilirsiniz, ancak derin bağlantıyı sizin için ayrıştırmak için FDL istemci kitaplığını kullanmanızı öneririz. Eylem kodu, e-posta işleyicilerini özelleştirme bölümünde açıklanan web akışından nasıl ele alındığına benzer şekilde doğrudan bir mobil uygulamadan uygulanabilir.

E-posta doğrulaması gibi e-posta eylemlerini işlerken, oobCode sorgu parametresinden eylem kodunun derin bağlantıdan ayrıştırılması ve daha sonra değişikliğin etkili olması için, örneğin e-postanın doğrulanması için applyActionCode aracılığıyla uygulanması gerekir.