Bütünsel Yaklaşımla Flutter Firebase FirebaseAuth İşlemleri

Bütünsel Yaklaşımla Flutter Firebase FirebaseAuth İşlemleri

1.FirebaseAuth BÇ:

// FirebaseAuth : KISA


// FirebaseAuth kullanıcı girişi ve doğrulamayı yöneten ana sınıf.
class FirebaseAuth {

    static final FirebaseAuth instance  
    final FirebaseApp app;

// OTURUM AÇTIMI
      Future<FirebaseUser> currentUser()  

//OTURUM DURUMUNU DINLE
      Stream<FirebaseUser> get onAuthStateChanged  

//OTURUN AÇMA YÖNTEMLERİ LİSTESİ
      Future<List<String>> fetchSignInMethodsForEmail({@required String email, }) 

//HESAP OLUŞTURMA
  // e-posta ve şifreyle
      Future<AuthResult> createUserWithEmailAndPassword({@required String email, @required String password,})  

//OTURUM AÇ
      // Anonim 
      Future<AuthResult> signInAnonymously() 

      //e-posta ve şifre 
      Future<AuthResult> signInWithEmailAndPassword({ @required String email,  @required String password,  })  

      //Google,Facebook ..[token]/etonlarıyla
      Future<AuthResult> signInWithCredential(AuthCredential credential) 

      //Özel [token]/jeton la
      Future<AuthResult> signInWithCustomToken({@required String token}) 

      // Bir e-posta adresi ve e-posta oturum açma bağlantısı kullanarak oturum açar.
      Future<AuthResult> signInWithEmailAndLink({String email, String link}) 

//OTURUM AÇAMA LINKI GÖNDER
      Future<void> sendSignInWithEmailLink({@required String email,@required String url,@required bool handleCodeInApp,@required String iOSBundleID,@required String androidPackageName, @required bool androidInstallIfNotAvailable,@required String androidMinimumVersion,})  

    //Bağlantının bir e-posta oturum açma bağlantısı olup olmadığını kontrol eder.
      Future<bool> isSignInWithEmailLink(String link)  


//SIFIRLAMA
      //şifre sıfırlama linki gönder
      Future<void> sendPasswordResetEmail({@required String email, })  

      // Doğrula: Onay kodu ve yeni şifre verildiğinde şifre sıfırlama işlemini tamamlar
      Future<void> confirmPasswordReset(String oobCode, String newPassword) 


//TELEFON DOĞRULA
      Future<void> verifyPhoneNumber({@required String phoneNumber, @required Duration timeout,int forceResendingToken, @required PhoneVerificationCompleted verificationCompleted,@required PhoneVerificationFailed verificationFailed, @required PhoneCodeSent codeSent,@required PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout,})  

//DİL
    Future<void> setLanguageCode(String language)  


  //OTURUM KAPAT
    Future<void> signOut()  
}

// FirebaseAuth : UZUN

// FirebaseAuth kullanıcı girişi ve doğrulamayı yöneten ana sınıf.
class FirebaseAuth {

static final FirebaseAuth instance  
final FirebaseApp app;


// OTURUM AÇTIMI
    // Halihazırda oturum açmış olan [FirebaseUser] veya [null] değerini döndürür.
    Future<FirebaseUser> currentUser()  

//OTURUM DURUMUNU DINLE
    // Kullanıcının oturum durumunu dinler ve haber verir.(kullanıcı her o. açtığında yada ayrıldığında)
    Stream<FirebaseUser> get onAuthStateChanged  



//OTURUN AÇMA YÖNTEMLERİ LİSTESİ
    // Belirli bir kullanıcıda ana e-posta e-posta adresiyle tanımlanan oturum açma yöntemlerinin bir listesini döndürür.
          //Kullanıcı bulunamazsa boş bir 'Liste` döndürülür.
          // E-postadan önce kimlik doğrulama akışını uygulamak istiyorsanız, birden çok kimlik doğrulama mekanizmasını desteklediğinizde bu yöntem yararlıdır. 
          // Hatalar:
          // * `ERROR_INVALID_CREDENTIAL` - e-posta adresi yanlış biçimlendirilmişse.
    Future<List<String>> fetchSignInMethodsForEmail({@required String email, }) 



//HESAP OLUŞTURMA
  // e-posta ve şifreyle
        // Başarılı olursa, kullanıcı uygulamada oturum açar ve [onAuthStateChanged] akışını günceller.
        // Hatalar:
        //  * `ERROR_WEAK_PASSWORD` - Şifre yeterince güçlü değil.
        //  * `ERROR_INVALID_EMAIL` -  E-posta adresi bozuk.
        //  * `ERROR_EMAIL_ALREADY_IN_USE` - E-posta zaten farklı bir hesap tarafından kullanılıyor
    Future<AuthResult> createUserWithEmailAndPassword({@required String email, @required String password,})  



//DOĞRUDAN OTURUM AÇMA
  // Anonim 
        // 1.Oturum açmamışsa oturum açar
        // 2.Zaten oturum açmışsa o kullanıcıyı döndürür.
        // 3.Oturum açan başka bir kullanıcı varsa, kullanıcının oturumunu kapatır.
        // Hatalar:   `ERROR_OPERATION_NOT_ALLOWED` - Firebase consolundan Anonim hesapların etkinleştirilmediğini gösterir.
  Future<AuthResult> signInAnonymously() 

  //e-posta ve şifre 
        // Başarılı olursa, aynı zamanda kullanıcıyı uygulamada oturum açar ve günceller [onAuthStateChanged] akışı.
        // ** Önemli **: Yetkilendirme'de E-posta ve Şifre hesaplarını etkinleştirmeniz gerekir
        // bölümünü kullanarak Firebase konsolunu kullanabilirsiniz.
        // Hatalar:
        // * `ERROR_INVALID_EMAIL` - [e-posta] adresi yanlış biçimlendirilmişse.
        // * `ERROR_WRONG_PASSWORD` - [şifre] yanlışsa.
        // * `ERROR_USER_NOT_FOUND` - Belirtilen [e-posta] adresine karşılık gelen bir kullanıcı yoksa veya kullanıcı silinmişse.
        // * `ERROR_USER_DISABLED` - Kullanıcı devre dışı bırakıldıysa (örneğin, Firebase konsolunda)
        // * `ERROR_TOO_MANY_REQUESTS` - Bu kullanıcı olarak oturum açmak için çok fazla deneme yapıldı.
        // * `ERROR_OPERATION_NOT_ALLOWED` - E-posta ve Şifre hesaplarının etkin olmadığını gösterir.
  Future<AuthResult> signInWithEmailAndPassword({ @required String email,  @required String password,  })  

  //Google,Facebook ..Jetonlarıyla
          // Firebase'de verilen üçüncü taraf kimlik bilgileriyle senkronize olmayan bir şekilde oturum açar (ör. Bir Facebook giriş Erişim Jetonu, bir Google Kimlik Jetonu / Erişim Jetonu çifti vb.) Ve ek kimlik sağlayıcı verileri döndürür.
          // Başarılı olursa, kullanıcı uygulamada oturum açar ve [onAuthStateChanged] akışını günceller.
          // Kullanıcının zaten bir hesabı yoksa, otomatik olarak bir hesap oluşturulur.
          // ** Önemli **: Kullanabilmeniz için Firebase konsolunun Yetkilendirme bölümünde ilgili hesapları etkinleştirmeniz gerekir.
          // Hatalar:
          // * `ERROR_INVALID_CREDENTIAL` - Kimlik bilgileri yanlış biçimlendirilmiş veya süresi dolmuşsa.
          // * `ERROR_USER_DISABLED` - Kullanıcı devre dışı bırakıldıysa (örneğin, Firebase konsolunda)
          // * `ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL` - E-posta adresinin Google tarafından belirtildiği bir hesap zaten varsa.
          // [fetchSignInMethodsForEmail] öğesini çağırarak ve kullanıcıdan kullanıcıdan birini kullanarak oturum açmasını isteyerek bu vakayı çözün.
          // Bu hata yalnızca Firebase konsolunda "Her e-posta adresi için bir hesap" ayarı etkinleştirilmişse (önerilen) atılır.
          // * `ERROR_OPERATION_NOT_ALLOWED` - Google hesaplarının etkin olmadığını gösterir.
          // * `ERROR_INVALID_ACTION_CODE` - Bağlantıdaki eylem kodu hatalı biçimlendirilmiş, süresi dolmuş veya zaten kullanılmışsa.
          // Bu yalnızca kimlik bilgilerini almak için [EmailAuthProvider.getCredentialWithLink] kullanılırken ortaya çıkabilir.
  Future<AuthResult> signInWithCredential(AuthCredential credential) 

  //Özel [token]/jeton la
          // Başarılı olursa, kullanıcı uygulamada oturum açar ve [onAuthStateChanged] akışını günceller.
          // Sunucunuzdan bir Firebase Auth Özel Jetonu aldıktan sonra bu yöntemi kullanın.
          // Jetonda belirtilen [uid] ile tanımlanan kullanıcının zaten bir hesabı yoksa, otomatik olarak bir hesap oluşturulur.
          // Özel Simge kimlik doğrulamasının nasıl kullanılacağını ve [kılavuzlar] 'da yararlı olduğu durumları okuyun (https://firebase.google.com/docs/auth/android/custom-auth).
          // Hatalar:
          // * `ERROR_INVALID_CUSTOM_TOKEN` - Özel jeton biçimi yanlış.
          // Lütfen belgelere bakın.
          // * `ERROR_CUSTOM_TOKEN_MISMATCH` - Geçersiz yapılandırma.
          // Firebase konsolunda uygulamanızın SHA1'inin doğru olduğundan emin olun.
  Future<AuthResult> signInWithCustomToken({@required String token}) 

  // Bir e-posta adresi ve e-posta oturum açma bağlantısı kullanarak oturum açar.
          // Hatalar:
          // * `ERROR_NOT_ALLOWED` - E-posta ve e-posta oturum açma bağlantısının olduğunu gösterir
          // hesapları etkin değil. Bunları Firebase konsolunun Kimlik Doğrulama bölümünde etkinleştirin.
          // * `ERROR_DISABLED` - Kullanıcının hesabının devre dışı bırakıldığını gösterir.
          // * `ERROR_INVALID` - E-posta adresinin geçersiz olduğunu gösterir.
  Future<AuthResult> signInWithEmailAndLink({String email, String link}) 



//OTURUM AÇAMA LINKI GÖNDER

  // e-posta adresine oturum ama linki gönderir.
    Future<void> sendSignInWithEmailLink({@required String email,@required String url, @required bool handleCodeInApp,@required String iOSBundleID, @required String androidPackageName, @required bool androidInstallIfNotAvailable, @required String androidMinimumVersion,})  

// Bağlantının bir e-posta oturum açma bağlantısı olup olmadığını kontrol eder.
    Future<bool> isSignInWithEmailLink(String link)  



//SIFIRLAMA

    //şifre sıfırlama linki gönder
          // Uygulamanızın mevcut bir kullanıcısına karşılık gelmesi gereken belirli bir e-posta adresine şifre sıfırlama e-postası göndermek için Firebase Kimlik Doğrulaması arka ucunu tetikler.
          // Hatalar:
          // * `ERROR_INVALID_EMAIL` - [e-posta] adresi yanlış biçimlendirilmiş.
          // * `ERROR_USER_NOT_FOUND` - Belirtilen [e-posta] adresine karşılık gelen bir kullanıcı yok.
  Future<void> sendPasswordResetEmail({@required String email, })  

    // Doğrula: Onay kodu ve yeni şifre verildiğinde şifre sıfırlama işlemini tamamlar
          // Hatalar:
          // `EXPIRED_ACTION_CODE` - şifre sıfırlama kodunun süresi dolmuşsa.
          // `INVALID_ACTION_CODE` - şifre sıfırlama kodu geçersizse. Bu, kod hatalı biçimlendirilmiş veya kullanılmışsa olabilir.
          // `USER_DISABLED` - verilen şifre sıfırlama koduna karşılık gelen kullanıcı devre dışı bırakılmışsa.
          // `USER_NOT_FOUND` - şifre sıfırlama koduna karşılık gelen kullanıcı yoksa. Kullanıcı, kodun verildiği zaman ile bu yöntemin çağrılması arasında silinmişse bu olmuş olabilir.
          // `WEAK_PASSWORD` - yeni şifre yeterince güçlü değilse.
    Future<void> confirmPasswordReset(String oobCode, String newPassword) 


//TELEFON DOĞRULA

  // Belirli bir telefon numarası için telefon numarası doğrulama işlemini başlatır.
        // Belirli bir telefon numarası için telefon numarası doğrulama işlemini başlatır.
        // Belirtilen telefon numarasına 6 haneli kodu içeren bir SMS gönderir veya kullanıcının oturum açması ve [verificationCompleted] çağrısı yapılır.
        // Yeniden girişte (zaman aşımından önce) yinelenen SMS gönderilmez.
        // Aşağıdaki tüm senaryoları test ettiğinizden emin olun:
        // * Google Play Hizmetleri telefon numarasını anında doğruladıysa veya doğrulama kodunu otomatik olarak almanıza yardımcı olduysa doğrudan giriş yaparsınız.
        // * Doğrulama kodu zaman aşımına uğradı.
        // * [verificationFailed] geri araması aldığınızda hata durumları.
        // [phoneNumber] Kullanıcının kaydolacağı veya oturum açtığı hesabın telefon numarası. Ülke kodunun önüne artı işareti ('+') eklenmiş bir telefon numarası girdiğinizden emin olun. [timeout] SMS otomatik alımının kütüphane tarafından tamamlanmasını beklemek istediğiniz maksimum süre. İzin verilen maksimum değer 2 dakikadır. SMS otomatik almayı devre dışı bırakmak için 0 kullanın. Bunu 0 olarak ayarlamak, [codeAutoRetrievalTimeout] öğesinin hemen çağrılmasına neden olur.
        // 30 saniyeden kısa bir pozitif değer belirlediyseniz, kitaplık varsayılan olarak 30 saniyeye ayarlanır.[forceResendingToken] Otomatik alım zaman aşımından önce başka bir doğrulama SMS i tekrar göndermeyi zorlamak için [codeSent] geri aramasından elde edilen [forceResendingToken].[verificationCompleted] Bu geri arama uygulanmalıdır.
        // Bir SMS otomatik olarak alındığında veya telefon numarası anında doğrulandığında tetiklenir. Geri arama, [signInWithCredential] veya [linkWithCredential] öğesine geçirilebilen bir [AuthCredential] alır.
        // [verificationFailed] Bu geri arama uygulanmalıdır.
        // Telefon numarası doğrulaması sırasında bir hata oluştuğunda tetiklenir.
        // [codeSent] İsteğe bağlı geri arama.
        // Kullanıcıların telefonuna SMS gönderildiğinde tetiklenir,ve bir [verificationId] ve [forceResendingToken] içerecektir.
        //
        // [codeAutoRetrievalTimeout] İsteğe bağlı geri arama.
        // SMS otomatik alımı zaman aşımına uğradığında tetiklenir ve bir [verificationId] sağlar.
    Future<void> verifyPhoneNumber({ @required String phoneNumber,@required Duration timeout, int forceResendingToken, @required PhoneVerificationCompleted verificationCompleted, @required PhoneVerificationFailed verificationFailed,@required PhoneCodeSent codeSent,@required PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout,})  



//DIĞER
  //kullanıcıya dil kodunu ayarlar.
        // Uluslararasılaştırılabilecek [sendEmailVerification] gibi kimlik doğrulama işlemleri için kullanıcıya bakan dil kodunu ayarlar.
        // Bu dil kodu, IETF tarafından BCP47'de tanımlanan kurallara uymalıdır.
  Future<void> setLanguageCode(String language)  



//OTURUM KAPAT
  // Geçerli kullanıcıyı kapatır ve disk önbelleğinden temizler.
        // Başarılı olursa, kullanıcıyı uygulamadan çıkarır ve [onAuthStateChanged] akışını günceller.
  Future<void> signOut()  

} 

1. FirebaseAuth BÇC: firebase oturumunu yöneten ana sınıftır.
FirebaseAuth sınıfı bir kullanıcının oturum açıp amadığını, oturum durumunu dinlemeyi, oturum açma yöntemlerinin listesini, oturumu anonim, eposta ve şifreyle, google, facebook gibi üçüncü taraf   sağlayıcılarla,cözel bir jetonla, eposta ve oturum açma linkiyle oturum açmayı,oturumun sıfırlanmasını, telefonla doğrulanmasını ve oturumun kapatılmasını sağlayan yöntemler içeren   firebase oturumunu yöneten sınıftır.

2.EYKPT : FirebaseUser

2. FirebaseUser BÇ:

//FirebaseUser : KISA

  // Bir FirebaseUser kullanıcısını temsil eden sınıf
class FirebaseUser extends UserInfo {

  final List<UserInfo> providerData;

  // Kullanıcı anonim olduğunda true değerini döndürür; yani, kullanıcı hesabı signInAnonymously () ile oluşturuldu ve başka bir hesaba bağlanmadı.
  FirebaseUserMetadata get metadata

  bool get isAnonymous

  // Kullanıcının e-postası doğrulanmış ise true değerini döndürür.
  bool get isEmailVerified

  // Geçerli kullanıcı için kimlik token sonucunu alır ve istenirse [refresh] 'yi zorlar.
  Future<IdTokenResult> getIdToken({bool refresh = false})  

  // Bir üçüncü taraf kimlik sağlayıcısından bir kullanıcı hesabını bu kullanıcıyla ilişkilendirir ve ek kimlik sağlayıcısı verileri döndürür.
  Future<AuthResult> linkWithCredential(AuthCredential credential)  

  // Kullanıcı için e-posta doğrulamasını başlatır.
  Future<void> sendEmailVerification()  

  // Geçerli kullanıcının verilerini manuel olarak yeniler (örneğin,ekli sağlayıcılar, görünen ad vb.).
  Future<void> reload() 

  // Geçerli kullanıcıyı siler (ayrıca kullanıcının oturumunu kapatır).
  Future<void> delete() 

  // Kullanıcının e-posta adresini günceller.
  Future<void> updateEmail(String email) 

  // Kullanıcının telefon numarasını günceller.
  Future<void> updatePhoneNumberCredential(AuthCredential credential)


  // Kullanıcının parolasını günceller.
  Future<void> updatePassword(String password) 

  // Kullanıcı profili bilgilerini günceller.
  Future<void> updateProfile(UserUpdateInfo userUpdateInfo) 

  // Kullanıcı tarafından sağlanan yeni bir [kimlik bilgisi] kümesini doğrulayarak kullanıcının kimlik doğrulama belirteçlerini yeniler ve ek kimlik sağlayıcısı verileri döndürür.
  Future<AuthResult> reauthenticateWithCredential( AuthCredential credential)

/// [provider] hesabını geçerli kullanıcıdan ayırır.
  Future<void> unlinkFromProvider(String provider) 

}



//FirebaseUser : UZUN

  // Bir FirebaseUser kullanıcısını temsil eden sınıf
  class FirebaseUser extends UserInfo {

  final List<UserInfo> providerData;

  // Kullanıcı anonim olduğunda true değerini döndürür; yani, kullanıcı hesabı signInAnonymously () ile oluşturuldu ve başka bir hesaba bağlanmadı.
  FirebaseUserMetadata get metadata

  bool get isAnonymous

  // Kullanıcının e-postası doğrulanmış ise true değerini döndürür.
  bool get isEmailVerified

  // Geçerli kullanıcı için kimlik token sonucunu alır ve istenirse [refresh] 'yi zorlar.
        // Kendi arka ucunuza karşı kimlik doğrulaması yaparken kullanışlıdır.
        // Bu simgenin bütünlüğünü ve geçerliliğini güvenli bir şekilde doğrulamak için sunucu SDK'larımızı kullanın veya resmi belgeleri izleyin.
        // Kullanıcı oturumu kapatılırsa hatayla tamamlanır.
  Future<IdTokenResult> getIdToken({bool refresh = false})  

  // Bir üçüncü taraf kimlik sağlayıcısından bir kullanıcı hesabını bu kullanıcıyla ilişkilendirir ve ek kimlik sağlayıcısı verileri döndürür.
        // Bu, kullanıcının söz konusu hesapla gelecekte bu hesapta oturum açmasına olanak tanır.
        // Hatalar:
        // * `ERROR_WEAK_PASSWORD` - Şifre yeterince güçlü değilse.
        // * `ERROR_INVALID_CREDENTIAL` - Kimlik bilgisi yanlış biçimlendirilmişse veya süresi dolmuşsa.
        // * `ERROR_EMAIL_ALREADY_IN_USE` - E-posta zaten farklı bir hesap tarafından kullanılıyorsa.
        // * `ERROR_CREDENTIAL_ALREADY_IN_USE` - Hesap zaten farklı bir hesap tarafından kullanılıyorsa, ör. telefon kimlik doğrulaması ile.
        // * `ERROR_USER_DISABLED` - Kullanıcı devre dışı bırakıldıysa (örneğin, Firebase konsolunda)
        // * `ERROR_REQUIRES_RECENT_LOGIN` - Kullanıcının son oturum açma süresi güvenlik eşiğini karşılamıyorsa. Çözümlemek için yeniden kimlik doğrulama yöntemlerini kullanın.
        // * `ERROR_PROVIDER_ALREADY_LINKED` - Geçerli kullanıcının zaten bu türde bir hesabı bağlıysa.
        // * `ERROR_OPERATION_NOT_ALLOWED` - Bu hesap türünün etkin olmadığını gösterir.
        // * `ERROR_INVALID_ACTION_CODE` - Bağlantıdaki eylem kodu hatalı biçimlendirilmiş, süresi dolmuş veya zaten kullanılmışsa.
        // Bu yalnızca kimlik bilgilerini almak için [EmailAuthProvider.getCredentialWithLink] kullanılırken ortaya çıkabilir.
  Future<AuthResult> linkWithCredential(AuthCredential credential)  

  // Kullanıcı için e-posta doğrulamasını başlatır.
  Future<void> sendEmailVerification()  

  // Geçerli kullanıcının verilerini manuel olarak yeniler (örneğin,ekli sağlayıcılar, görünen ad vb.).
  Future<void> reload() 

  // Geçerli kullanıcıyı siler (ayrıca kullanıcının oturumunu kapatır).
        // Hatalar:
        // * `ERROR_REQUIRES_RECENT_LOGIN` - Kullanıcının son oturum açma süresi güvenlik eşiğini karşılamıyorsa. Çözümlemek için yeniden kimlik doğrulama yöntemlerini kullanın.
        // * `ERROR_INVALID_CREDENTIAL` - Kimlik bilgisi yanlış biçimlendirilmişse veya süresi dolmuşsa.
        // * `ERROR_USER_DISABLED` - Kullanıcı devre dışı bırakıldıysa (örneğin, Firebase konsolunda)
        // * `ERROR_USER_NOT_FOUND` - Kullanıcı silinmişse (örneğin, Firebase konsolunda)
  Future<void> delete() 

  // Kullanıcının e-posta adresini günceller.
        // Orijinal e-posta adresi alıcısı, hesabın ele geçirilmesinden korunmak için e-posta adresi değişikliğini iptal etmelerini sağlayan bir e-posta alır.
        // ** Önemli **: Bu, güvenlik gerektiren bir işlemdir son oturum açmış kullanıcı.
        // Hatalar:
        // * `ERROR_INVALID_CREDENTIAL` - E-posta adresi yanlış biçimlendirilmişse.
        // * `ERROR_EMAIL_ALREADY_IN_USE` - E-posta zaten farklı bir hesap tarafından kullanılıyorsa.
        // * `ERROR_USER_DISABLED` - Kullanıcı devre dışı bırakıldıysa (örneğin, Firebase konsolunda)
        // * `ERROR_USER_NOT_FOUND` - Kullanıcı silinmişse (örneğin, Firebase konsolunda)
        // * `ERROR_REQUIRES_RECENT_LOGIN` - Kullanıcının son oturum açma süresi güvenlik eşiğini karşılamıyorsa. Çözümlemek için yeniden kimlik doğrulama yöntemlerini kullanın.
        // * `ERROR_OPERATION_NOT_ALLOWED` - E-posta ve Şifre hesaplarının etkin olmadığını gösterir.
  Future<void> updateEmail(String email) 

  // Kullanıcının telefon numarasını günceller.
        // Hesaba zaten bir telefon numarası bağlıysa, Firebase hesabına eklenecek telefon numarasına karşılık gelen yeni telefon numarası kimlik bilgisi.
        // bu yeni telefon numarası onun yerini alacak.
        // ** Önemli **: Bu, güvenlik gerektiren bir işlemdir
        // yakın zamanda oturum açmış olan kullanıcı.
  Future<void> updatePhoneNumberCredential(AuthCredential credential)


  // Kullanıcının parolasını günceller.
        // Hem e-postalarını hem de şifrelerini güncelleyen anonim kullanıcılar artık anonim olmayacak. Bu kimlik bilgileriyle giriş yapabilirler.
        // ** Önemli **: Bu, kullanıcının yakın zamanda oturum açmasını gerektiren güvenliğe duyarlı bir işlemdir.
        // Hatalar:
        // * `ERROR_WEAK_PASSWORD` - Şifre yeterince güçlü değilse.
        // * `ERROR_USER_DISABLED` - Kullanıcı devre dışı bırakıldıysa (örneğin, Firebase konsolunda)
        // * `ERROR_USER_NOT_FOUND` - Kullanıcı silinmişse (örneğin, Firebase konsolunda)
        // * `ERROR_REQUIRES_RECENT_LOGIN` - Kullanıcının son oturum açma süresi güvenlik eşiğini karşılamıyorsa. Çözümlemek için yeniden kimlik doğrulama yöntemlerini kullanın.
        // * `ERROR_OPERATION_NOT_ALLOWED` - E-posta ve Şifre hesaplarının etkin olmadığını gösterir.
  Future<void> updatePassword(String password) 

  // Kullanıcı profili bilgilerini günceller.
        // Hatalar:
        // * `ERROR_USER_DISABLED` - Kullanıcı devre dışı bırakıldıysa (örneğin, Firebase konsolunda)
        // * `ERROR_USER_NOT_FOUND` - Kullanıcı silinmişse (örneğin, Firebase konsolunda)
  Future<void> updateProfile(UserUpdateInfo userUpdateInfo) 

  // Kullanıcı tarafından sağlanan yeni bir [kimlik bilgisi] kümesini doğrulayarak kullanıcının kimlik doğrulama belirteçlerini yeniler ve ek kimlik sağlayıcısı verileri döndürür.
        // Bu, `ERROR_REQUIRES_RECENT_LOGIN` i önlemek veya çözmek için kullanılır
        // yakın zamanda oturum açmayı gerektiren işlemlere yanıt.
        // Sağlanan kimlik bilgisiyle ilişkilendirilen kullanıcı geçerli kullanıcıdan farklıysa veya sağlanan kimlik bilgilerinin doğrulanması başarısız olursa; 
        //bir hata döndürülür ve geçerli kullanıcı oturumda kalır.
        // Hatalar:
        // * `ERROR_INVALID_CREDENTIAL` - [authToken] veya [authTokenSecret] bozuk veya süresi dolmuşsa.
        // * `ERROR_WRONG_PASSWORD` - Şifre geçersizse veya kullanıcının bir şifresi yoksa.
        // * `ERROR_USER_DISABLED` - Kullanıcı devre dışı bırakıldıysa (örneğin, Firebase konsolunda)
        // * `ERROR_USER_NOT_FOUND` - Kullanıcı silinmişse (örneğin, Firebase konsolunda)
        // * `ERROR_OPERATION_NOT_ALLOWED` - E-posta ve Şifre hesaplarının etkin olmadığını gösterir.
  Future<AuthResult> reauthenticateWithCredential( AuthCredential credential)

/// [provider] hesabını geçerli kullanıcıdan ayırır.
        // Bu, kullanıcının bu kimlik bilgileriyle bu hesapta oturum açmasını önler.
        // ** Önemli **: Bu, güvenlik gerektiren bir işlemdir
        // yakın zamanda oturum açmış olan kullanıcı.
        // [provider] için bir kimlik doğrulama sağlayıcısının `providerId` yöntemini kullanın.
        // Hatalar:
        // * `ERROR_NO_SUCH_PROVIDER` - Kullanıcının hesabına bağlı bir Github Hesabı yoksa.
        // * `ERROR_REQUIRES_RECENT_LOGIN` - Kullanıcının son oturum açma süresi güvenlik eşiğini karşılamıyorsa. Çözümlemek için yeniden kimlik doğrulama yöntemlerini kullanın.
  Future<void> unlinkFromProvider(String provider) 

} 

2. FirebaseUser BÇC: firebase kullanıcısını temsil eden sınıftır.  
FirebaseUser sınıfı bir firebase kullanıcısının verilerini(ham, metadata, kimlik jetonu,anonim olup olmadığı, epostası doğrulaması yapıp yapmadığı),  güncelleme işlemlerini( eposta, telno,parola,profil), doğrulama işlemlerini(doğrulama epostası gönderme,kmlik bilgileri ile kimlik doğrulama),  üçüncü taraf bağlantısı kurma,verileri yenileme, kullanıcıyı ayırma ve silme yöntemleri sunan firebase kullanıcısını temsil eden ana sınıftır.

 

 

3.EYKPT : AuthResult

3. AuthResult BÇ:

// Kimlik doğrulama durumunu etkileyebilecek işlemlerden elde edilen sonuç nesnesi. İşlem tamamlandıktan sonra şu anda oturum açmış olan kullanıcıyı döndüren bir yöntem içerir.
class AuthResult { 

    // Şu anda oturum açmış olan [FirebaseUser] 'ı veya yoksa (null kullanıcı oturumu kapatılmışsa) `null` değerini döndürür.
    final FirebaseUser user;

    // Sağlayıcı Facebook, Github, Google veya Twitter'dan biriyse kullanıcı için IDP'ye özgü bilgileri döndürür.
    AdditionalUserInfo get additionalUserInfo  
} 

3. AuthResult BÇC: Kimlik doğrulama sonucunu temsil eden sınıftır. 
AuthResult,  kimlik doğrulama başarılıysa oturum açmış olan kullanıcıyı FirebaseUser türünde döndüren ve    sağlayıcı Facebook, Github, Google veya Twitter’dan biriyse ek kullanıcı bilgilerini AdditionalUserInfo türünde döndüren yöntemler içeren kimlik doğrulama sonucunu temsil eden sınıftır.

4.EYKPT : UserInfo

4. UserInfo BÇ:

// Bir kimlik sağlayıcıdan döndürülen kullanıcı verilerini temsil eder.
class UserInfo {
  // Sağlayıcı kimliği.
  String get providerId

  // Sağlayıcının kullanıcı için kullanıcı kimliği.
  String get uid 

  // Kullanıcının adı.
  String get displayName 

  // Kullanıcının profil fotoğrafının URL'si.
  String get photoUrl 

  // Kullanıcının e-posta adresi.
  String get email 

  // Kullanıcının telefon numarası.
  String get phoneNumber
} 

4. UserInfo BÇC:Bir kimlik sağlayıcıdan döndürülen kullanıcı verilerini(Sağlayıcı kimliği, kullanıcı kimliği, kullanıcının adı,profil fotoğraf urlsi,email,telefon no ) temsil eden sınıftır.

FirebaseAuth İşlemleri için TBÇCD

1. FirebaseAuth BÇC: firebase oturumunu yöneten ana sınıftır.

FirebaseAuth sınıfı bir kullanıcının oturum açıp amadığını, oturum durumunu dinlemeyi, oturum açma yöntemlerinin listesini, oturumu anonim, eposta ve şifreyle, google, facebook gibi üçüncü taraf   sağlayıcılarla,cözel bir jetonla, eposta ve oturum açma linkiyle oturum açmayı,oturumun sıfırlanmasını, telefonla doğrulanmasını ve oturumun kapatılmasını sağlayan yöntemler içeren   firebase oturumunu yöneten sınıftır.

2. FirebaseUser BÇC: firebase kullanıcısını temsil eden sınıftır.  

FirebaseUser sınıfı bir firebase kullanıcısının verilerini(ham, metadata, kimlik jetonu,anonim olup olmadığı, epostası doğrulaması yapıp yapmadığı),  güncelleme işlemlerini( eposta, telno,parola,profil), doğrulama işlemlerini(doğrulama epostası gönderme,kmlik bilgileri ile kimlik doğrulama),  üçüncü taraf bağlantısı kurma,verileri yenileme, kullanıcıyı ayırma ve silme yöntemleri sunan firebase kullanıcısını temsil eden ana sınıftır.

3. AuthResult BÇC: Kimlik doğrulama sonucunu temsil eden sınıftır. 

AuthResult,  kimlik doğrulama başarılıysa oturum açmış olan kullanıcıyı FirebaseUser türünde döndüren ve    sağlayıcı Facebook, Github, Google veya Twitter’dan biriyse ek kullanıcı bilgilerini AdditionalUserInfo türünde döndüren yöntemler içeren kimlik doğrulama sonucunu temsil eden sınıftır.

4. UserInfo BÇC:Bir kimlik sağlayıcıdan döndürülen kullanıcı verilerini(Sağlayıcı kimliği, kullanıcı kimliği, kullanıcının adı,profil fotoğraf urlsi,email,telefon no ) temsil eden sınıftır.

FirebaseAuth İşlemleri için DC:

FirebaseAuth, tüm oturum işlerini yönetir,
FirebaseUser, kullanıcı ham bilgilerini içeren UserInfo sınıfını miras alan bir firebase kullanıcısını temsil eder,
AuthResult, kimlik doğrulama sonucunu temsil eder ve firebase kullanıcısını(FirebaseUser) içerir.

Bir cevap yazın