Firebase ile Anonim olarak kimlik doğrulama

Firebase ile kimlik doğrulamak amacıyla geçici anonim hesaplar oluşturmak ve kullanmak için Firebase Authentication'ı kullanabilirsiniz. Bu geçici anonim hesaplar, henüz uygulamanıza kaydolmamış kullanıcıların güvenlik kurallarıyla korunan verilerle çalışmasına olanak tanımak için kullanılabilir. Anonim bir kullanıcı uygulamanıza kaydolmaya karar verirse oturum açma kimlik bilgilerini anonim hesaba bağlayarak gelecekteki oturumlarda korunan verileriyle çalışmaya devam edebilir.

Başlamadan önce

  1. Henüz yapmadıysanız Başlangıç kılavuzundaki adımları uygulayın.

  2. Anonim oturum açmayı etkinleştir:

    • Firebase konsolunun Kimlik Doğrulama bölümünde Oturum açma yöntemi sayfasını açın.
    • Oturum açma yöntemi sayfasında Anonim oturum açma yöntemini etkinleştirin ve Kaydet'i tıklayın.

Firebase ile anonim olarak kimlik doğrulama

Oturumu kapalı bir kullanıcı Firebase ile kimlik doğrulama gerektiren bir uygulama özelliği kullandığında signInAnonymously() numaralı telefonu arayarak kullanıcının anonim olarak oturum açmasını sağlayın:

try {
  final userCredential =
      await FirebaseAuth.instance.signInAnonymously();
  print("Signed in with temporary account.");
} on FirebaseAuthException catch (e) {
  switch (e.code) {
    case "operation-not-allowed":
      print("Anonymous auth hasn't been enabled for this project.");
      break;
    default:
      print("Unknown error.");
  }
}

Anonim bir hesabı kalıcı hesaba dönüştürme

Anonim bir kullanıcı uygulamanıza kaydolduğunda, işine yeni hesabıyla devam etmesine izin vermek isteyebilirsiniz. Örneğin, kullanıcının kaydolmadan önce alışveriş sepetine eklediği ürünleri yeni hesabının alışveriş sepetine eklemeyi düşünebilirsiniz. Bunun için aşağıdaki adımları tamamlayın:

  1. Kullanıcı kaydolduğunda, signInWith yöntemlerinden birini çağırarak kullanıcının kimlik doğrulama sağlayıcısı için oturum açma akışını tamamlayın (bunlar hariç). Örneğin, kullanıcının Google kimliği jetonunu, Facebook erişim jetonunu veya e-posta adresini ve şifresini alabilirsiniz.

  2. Yeni kimlik doğrulama sağlayıcı için bir Credential nesnesi alın:

    // Google Sign-in
    final credential = GoogleAuthProvider.credential(idToken: idToken);
    
    // Email and password sign-in
    final credential =
        EmailAuthProvider.credential(email: emailAddress, password: password);
    
    // Etc.
    
  3. Credential nesnesini, oturum açma kullanıcısının linkWithCredential() yöntemine iletin:

    try {
      final userCredential = await FirebaseAuth.instance.currentUser
          ?.linkWithCredential(credential);
    } on FirebaseAuthException catch (e) {
      switch (e.code) {
        case "provider-already-linked":
          print("The provider has already been linked to the user.");
          break;
        case "invalid-credential":
          print("The provider's credential is not valid.");
          break;
        case "credential-already-in-use":
          print("The account corresponding to the credential already exists, "
              "or is already linked to a Firebase User.");
          break;
        // See the API reference for the full list of error codes.
        default:
          print("Unknown error.");
      }
      ```
    

linkWithCredential() çağrısı başarılı olursa kullanıcının yeni hesabı, anonim hesabın Firebase verilerine erişebilir.

Sonraki adımlar

Kullanıcı yeni bir hesap oluşturduktan sonra bu hesap, Firebase projenizin bir parçası olarak depolanır ve kullanıcının kullandığı oturum açma yönteminden bağımsız olarak projenizdeki her uygulamada kullanıcıyı tanımlamak için kullanılabilir.

Uygulamalarınızda, kullanıcının temel profil bilgilerini User nesnesinden alabilirsiniz. Kullanıcıları Yönetme başlıklı makaleye göz atın.

Firebase Realtime Database ve Cloud Storage Güvenlik Kurallarınızda, oturum açan kullanıcının auth değişkeninden benzersiz kullanıcı kimliğini alabilir ve kullanıcının hangi verilere erişebileceğini kontrol etmek için bunu kullanabilirsiniz.

Kimlik doğrulama sağlayıcı kimlik bilgilerini bağlayarak) kullanıcıların mevcut bir kullanıcı hesabına birden fazla kimlik doğrulama sağlayıcısı kullanarak uygulamanızda oturum açmasına izin verebilirsiniz.

Bir kullanıcının oturumunu kapatmak için signOut() numaralı telefonu arayın:

await FirebaseAuth.instance.signOut();