Uygulamanızı Firebase'e bağlayın
Henüz yapmadıysanız , Flutter için Firebase SDK'larını kurun ve başlatın .
Uygulamanıza Firebase Kimlik Doğrulaması ekleyin
Flutter projenizin kökünden eklentiyi kurmak için aşağıdaki komutu çalıştırın:
flutter pub add firebase_auth
Tamamlandığında, Flutter uygulamanızı yeniden oluşturun:
flutter run
Eklentiyi Dart kodunuza aktarın:
import 'package:firebase_auth/firebase_auth.dart';
Bir kimlik doğrulama sağlayıcısı kullanmak için onu Firebase konsolunda etkinleştirmeniz gerekir. E-posta/Parola ile oturum açmayı ve uygulamanız için istediğiniz diğer kimlik sağlayıcıları etkinleştirmek için Firebase Kimlik Doğrulama bölümündeki Oturum Açma Yöntemi sayfasına gidin.
(İsteğe bağlı) Firebase Local Emulator Suite ile prototip oluşturun ve test edin
Uygulamanızın kullanıcıların kimliğini nasıl doğruladığı hakkında konuşmadan önce, Kimlik Doğrulama işlevinin prototipini oluşturmak ve test etmek için kullanabileceğiniz bir dizi araçtan bahsedelim: Firebase Local Emulator Suite. Kimlik doğrulama teknikleri ve sağlayıcılar arasında karar veriyorsanız, Kimlik Doğrulama ve Firebase Güvenlik Kurallarını kullanarak genel ve özel verilerle farklı veri modellerini denemek veya oturum açma UI tasarımlarını prototiplemek istiyorsanız, canlı hizmetleri dağıtmadan yerel olarak çalışabilmek harika bir fikir olabilir. .
Bir Kimlik Doğrulama öykünücüsü, uygulamanızın öykünülmüş veritabanı içeriği ve yapılandırmasının yanı sıra isteğe bağlı olarak öykünülmüş proje kaynaklarınızla (işlevler, diğer veritabanları ve güvenlik kuralları) etkileşim kurmasını sağlayan Yerel Öykünücü Paketi'nin bir parçasıdır.
Kimlik Doğrulama öykünücüsünü kullanmak yalnızca birkaç adımı içerir:
Öykünücüye bağlanmak için uygulamanızın test yapılandırmasına bir kod satırı ekleme.
Yerel proje dizininizin kökünden,
firebase emulators:start
.Etkileşimli prototip oluşturma için Yerel Öykünücü Paketi Kullanıcı Arabirimi'ni veya etkileşimli olmayan testler için Kimlik Doğrulama öykünücüsü REST API'sini kullanma.
Öykünücü adresini ve bağlantı noktasını belirtmek için
useAuthEmulator()
çağırın:Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); // Ideal time to initialize await FirebaseAuth.instance.useAuthEmulator('localhost', 9099); //... }
Uygulamanızı Kimlik Doğrulama öykünücüsüne bağlayın bölümünde ayrıntılı bir kılavuz bulunmaktadır. Daha fazla bilgi için Local Emulator Suite tanıtımına bakın.
Şimdi, kullanıcıların kimliğinin nasıl doğrulanacağı ile devam edelim.
Geçerli kimlik doğrulama durumunu kontrol edin
Firebase Auth, güvenli kimlik doğrulamayı yeni veya mevcut Flutter uygulamanıza entegre etmenize olanak tanıyan birçok yöntem ve yardımcı program sağlar. Çoğu durumda, oturum açıp açmadıkları gibi kullanıcınızın kimlik doğrulama durumunu bilmeniz gerekir.
Firebase Auth, bir Stream
aracılığıyla bu duruma gerçek zamanlı olarak abone olmanızı sağlar. Bir kez çağrıldığında, akış, kullanıcının mevcut kimlik doğrulama durumunun hemen bir olayını sağlar ve ardından, kimlik doğrulama durumu her değiştiğinde sonraki olayları sağlar.
Kimlik doğrulama durumu değişikliklerini dinlemenin üç yöntemi vardır:
authStateChanges()
Bu değişikliklere abone olmak için FirebaseAuth
örneğinizde authStateChanges()
yöntemini çağırın:
FirebaseAuth.instance
.authStateChanges()
.listen((User? user) {
if (user == null) {
print('User is currently signed out!');
} else {
print('User is signed in!');
}
});
Aşağıdakiler gerçekleştiğinde olaylar tetiklenir:
- Dinleyici kaydedildikten hemen sonra.
- Bir kullanıcı oturum açtığında.
- Geçerli kullanıcının oturumu kapatıldığında.
idTokenChanges()
Bu değişikliklere abone olmak için FirebaseAuth
örneğinizde idTokenChanges()
yöntemini çağırın:
FirebaseAuth.instance
.idTokenChanges()
.listen((User? user) {
if (user == null) {
print('User is currently signed out!');
} else {
print('User is signed in!');
}
});
Aşağıdakiler gerçekleştiğinde olaylar tetiklenir:
- Dinleyici kaydedildikten hemen sonra.
- Bir kullanıcı oturum açtığında.
- Geçerli kullanıcının oturumu kapatıldığında.
- Geçerli kullanıcının belirtecinde bir değişiklik olduğunda.
- Bir kullanıcı, özel talepler değiştirildikten sonra oturum açar veya yeniden kimlik doğrulaması yapar. Sonuç olarak verilen kimlik belirteci en son talepleri içerecektir.
- Mevcut bir kullanıcı oturumu, eski bir belirtecin süresi dolduktan sonra kimlik belirtecini yeniler.
- Bir kimlik belirteci,
FirebaseAuth.instance.currentUser.getIdTokenResult(true)
çağrılarak zorunlu olarak yenilenir.
Daha fazla ayrıntı için bkz . Özel talepleri müşteriye yayma
userChanges()
Bu değişikliklere abone olmak için FirebaseAuth
örneğinizde userChanges()
yöntemini çağırın:
FirebaseAuth.instance
.userChanges()
.listen((User? user) {
if (user == null) {
print('User is currently signed out!');
} else {
print('User is signed in!');
}
});
Aşağıdakiler gerçekleştiğinde olaylar tetiklenir:
- Dinleyici kaydedildikten hemen sonra.
- Bir kullanıcı oturum açtığında.
- Geçerli kullanıcının oturumu kapatıldığında.
- Geçerli kullanıcının belirtecinde bir değişiklik olduğunda.
-
FirebaseAuth.instance.currentUser
tarafından sağlanan aşağıdaki yöntemler çağrıldığında:-
reload()
-
unlink()
-
updateEmail()
-
updatePassword()
-
updatePhoneNumber()
-
updateProfile()
-
idTokenChanges()
, userChanges()
ve authStateChanges()
, User
Firebase Admin SDK veya Firebase konsolu ile devre dışı bırakırsanız veya silerseniz de tetiklenmez. FirebaseAuth.instance.currentUser.reload()
kullanarak yeniden yüklemeyi zorlamanız gerekecek; bu, uygulama kodunuzda yakalayabileceğiniz ve işleyebileceğiniz, user-disabled
veya user-not-found
bir istisnaya neden olacaktır.
Kalıcı kimlik doğrulama durumu
Tüm platformlar için Firebase SDK'ları, uygulama yeniden başlatmaları veya sayfa yeniden yüklemeleri sırasında kullanıcınızın kimlik doğrulama durumunun kalıcı olmasını sağlamak için hazır destek sağlar.
Android ve iOS gibi yerel platformlarda bu davranış yapılandırılamaz ve kullanıcının kimlik doğrulama durumu, uygulama yeniden başlatmaları arasında cihazda kalıcı olur. Kullanıcı, depolanan mevcut durumları silecek olan cihaz ayarlarını kullanarak uygulamaların önbelleğe alınmış verilerini temizleyebilir.
Web platformlarında, kullanıcının kimlik doğrulama durumu IndexedDB'de saklanır. Persistence.LOCAL
kullanarak yerel depolamada veri depolamak için kalıcılığı değiştirebilirsiniz. Gerekirse, bu varsayılan davranışı yalnızca geçerli oturum için kimlik doğrulama durumunu sürdürecek veya hiç değiştirmeyecek şekilde değiştirebilirsiniz. Bu ayarları yapılandırmak için şu yöntemi çağırın FirebaseAuth.instanceFor(app: Firebase.app(), persistence: Persistence.LOCAL);
. setPersistence(Persistence.NONE)
kullanarak her Auth örneğinin kalıcılığını yine de güncelleyebilirsiniz.
// Disable persistence on web platforms. Must be called on initialization:
final auth = FirebaseAuth.instanceFor(app: Firebase.app(), persistence: Persistence.NONE);
// To change it after initialization, use `setPersistence()`:
await auth.setPersistence(Persistence.LOCAL);
Sonraki adımlar
Desteklenen kimlik ve kimlik doğrulama hizmetleriyle kullanıcıların oturum açması ve kaydolmasıyla ilgili kılavuzları keşfedin.