CodeBlanks Logo Icon CodeBlanks

Email ve şifre

createUserWithEmailAndPassword ile kayıt olmayı öğrenirsin.

createUserWithEmailAndPassword

createUserWithEmailAndPassword metodu, e-posta ve şifre ile yeni bir kullanıcı hesabı oluşturur. E-posta ve şifre parametreleri zorunludur. Başarılı olunca UserCredential döner; bu nesne oluşturulan kullanıcı bilgilerini içerir.

final cred = await auth.createUserWithEmailAndPassword(
  email: 'a@b.com',
  password: '123456',
);
print(cred.user.email);

FirebaseAuthException

createUserWithEmailAndPassword başarısız olursa bir FirebaseAuthException fırlatılır. Hata kodu code alanında verilir; örneğin 'email-already-in-use' veya 'weak-password'. Bu yüzden çağrıyı try/catch ile sarmak gerekir.

try {
  await auth.createUserWithEmailAndPassword(
    email: email, password: password);
} on FirebaseAuthException catch (e) {
  print(e.code);
}

Uygulama Kullanıcı kaydet

Auth örneğini al, createUserWithEmailAndPassword ile 'a@b.com' e-postası ve '123456' şifresiyle yeni kullanıcı oluştur. Dönen UserCredential'dan e-postayı yazdır.

Başlangıç kodu

main.dart
class User {
  final String email;
  User(this.email);
}

class UserCredential {
  final User user;
  UserCredential(this.user);
}

class FirebaseAuth {
  static final FirebaseAuth instance = FirebaseAuth._();
  FirebaseAuth._();
  User? _user;
  User? get currentUser => _user;

  Future<UserCredential> createUserWithEmailAndPassword({
    required String email,
    required String password,
  }) async {
    _user = User(email);
    return UserCredential(_user!);
  }
}

void main() async {
  // kayıt metodunu çağır
  // sonuçtan e-postayı yazdır
}

Örnek çözüm

main.dart
class User {
  final String email;
  User(this.email);
}

class UserCredential {
  final User user;
  UserCredential(this.user);
}

class FirebaseAuth {
  static final FirebaseAuth instance = FirebaseAuth._();
  FirebaseAuth._();
  User? _user;
  User? get currentUser => _user;

  Future<UserCredential> createUserWithEmailAndPassword({
    required String email,
    required String password,
  }) async {
    _user = User(email);
    return UserCredential(_user!);
  }
}

void main() async {
  final auth = FirebaseAuth.instance;
  final cred = await auth.createUserWithEmailAndPassword(
    email: 'a@b.com',
    password: '123456',
  );
  print(cred.user.email);
}

Beklenen çıktı

a@b.com

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 createUserWithEmailAndPassword başarılı olunca ne döndürür?

  • Yalnızca bir hata kodu
  • FirebaseAuth örneği
  • UserCredential Doğru cevap
  • Boş bir Future

Açıklama: Başarılı kayıtta UserCredential döner; bu nesne user alanı üzerinden oluşturulan kullanıcıya erişim sağlar.

2 Kayıt metodunu çağır

Soru
final cred = await auth.____(
  email: 'a@b.com',
  password: '123456',
);
Cevap
final cred = await auth.createUserWithEmailAndPassword(
  email: 'a@b.com',
  password: '123456',
);

Açıklama: Yeni kullanıcı oluşturmak için createUserWithEmailAndPassword çağrılır; e-posta ve şifre parametreleri zorunludur.

3 Kayıt parçaları

Kavram Anlamı
createUserWithEmailAndPassword Yeni kullanıcı oluşturur
UserCredential İşlem sonucu
email: E-posta adresi
password: Şifre

İleri seviye bölümündeki tüm dersler