signInWithEmailAndPassword
- Flutter kursu
- İleri seviye
- Ders 18/69
- 4 dk
signInWithEmailAndPassword ile giriş yapmayı öğrenirsin.
signInWithEmailAndPassword
signInWithEmailAndPassword metodu, kayıtlı bir kullanıcıyla oturum açar. E-posta ve şifre doğruysa UserCredential döner ve currentUser güncellenir. Şifre yanlışsa FirebaseAuthException fırlatılır.
final cred = await auth.signInWithEmailAndPassword(
email: 'a@b.com',
password: '123456',
);signOut metodu
signOut metodu oturumu kapatır ve currentUser null olur. Kullanıcı uygulamayı terk ettiğinde veya başka bir hesaba geçmek istediğinde bu metodu çağırırsın. Çağrı asenkron olduğu için await ile beklenir.
await auth.signOut();
print(auth.currentUser); // nullUygulama Giriş yap ve çık
Auth örneğini al, signInWithEmailAndPassword ile giriş yap, e-postayı yazdır. Sonra signOut çağır, currentUser'ı kontrol et ve yoksa 'yok' yazdır.
Başlangıç kodu
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> signInWithEmailAndPassword({
required String email,
required String password,
}) async {
_user = User(email);
return UserCredential(_user!);
}
Future<void> signOut() async {
_user = null;
}
}
void main() async {
// giriş metodunu çağır, e-postayı yazdır
// çıkış metodunu çağır, 'yok' yazdır
}Örnek çözüm
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> signInWithEmailAndPassword({
required String email,
required String password,
}) async {
_user = User(email);
return UserCredential(_user!);
}
Future<void> signOut() async {
_user = null;
}
}
void main() async {
final auth = FirebaseAuth.instance;
final cred = await auth.signInWithEmailAndPassword(
email: 'a@b.com',
password: '123456',
);
print(cred.user.email);
await auth.signOut();
print(auth.currentUser?.email ?? 'yok');
}Beklenen çıktı
a@b.com yok
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 signInWithEmailAndPassword yanlış şifre verince ne olur?
- Uygulama kapanır
- Boş UserCredential döner
- null döner
- FirebaseAuthException fırlatılır Doğru cevap
Açıklama: Şifre yanlış olduğunda FirebaseAuthException fırlatılır; null veya boş UserCredential dönmez.
2 Giriş metodunu çağır
final cred = await auth.____(
email: 'a@b.com',
password: '123456',
);
final cred = await auth.signInWithEmailAndPassword(
email: 'a@b.com',
password: '123456',
);
Açıklama: Giriş yapmak için signInWithEmailAndPassword çağrılır; e-posta ve şifre parametreleri zorunludur.
3 Giriş ve çıkış parçaları
| Kavram | Anlamı |
|---|---|
signInWithEmailAndPassword |
Giriş yapar |
signOut |
Oturumu kapatır |
UserCredential |
Giriş sonucu |
currentUser |
Mevcut kullanıcı |