Firebase ile kimlik doğrulamak için Firebase Authentication kullanarak geçici anonim hesaplar oluşturabilir ve kullanabilirsiniz. Bu geçici anonim hesaplar, uygulamanıza henüz 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ğlayabilirsiniz. Böylece kullanıcı, gelecekteki oturumlarda korunan verileriyle çalışmaya devam edebilir.
Başlamadan önce
-
Firebase bağımlılıklarını yüklemek ve yönetmek için Swift Package Manager'ı kullanın.
- Xcode'da, uygulama projeniz açıkken File > Add Packages'a (Dosya > Paket Ekle) gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Firebase Authentication kitaplığını seçin.
-ObjCişaretini hedefinizin derleme ayarlarının Other Linker Flags (Diğer Bağlayıcı İşaretleri) bölümüne ekleyin.- İşlem tamamlandığında Xcode, bağımlılıklarınızı otomatik olarak çözümlemeye ve arka planda indirmeye başlar.
https://github.com/firebase/firebase-ios-sdk.git
- Uygulamanızı henüz Firebase projenize bağlamadıysanız bunu Firebase konsolundan yapın.
-
Anonim kimlik doğrulamayı etkinleştirin:
- Firebase konsolunda Güvenlik > Kimlik doğrulama'ya gidin.
- Oturum açma yöntemi sekmesinde Anonim oturum açma sağlayıcısını etkinleştirin.
- İsteğe bağlı: Projenizi Firebase Authentication with Identity Platform sürümüne yükselttiyseniz otomatik temizlemeyi etkinleştirebilirsiniz. Bu ayarı etkinleştirdiğinizde 30 günden eski anonim hesaplar otomatik olarak silinir. Otomatik temizleme özelliğinin etkin olduğu projelerde, anonim kimlik doğrulama artık kullanım sınırlarına veya faturalandırma kotalarına dahil edilmeyecek. Otomatik temizleme başlıklı makaleyi inceleyin.
Firebase ile anonim olarak kimlik doğrulama
Oturumu kapalı bir kullanıcı, Firebase ile kimlik doğrulama gerektiren bir uygulama özelliği kullandığında aşağıdaki adımları tamamlayarak kullanıcının oturumunu anonim olarak açın:
FirebaseCoremodülünüUIApplicationDelegateve uygulama temsilcinizin kullandığı diğer Firebase modüllerini içe aktarın. Örneğin, Cloud Firestore ve Authentication kullanmak için:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Uygulama temsilcinizin
FirebaseAppapplication(_:didFinishLaunchingWithOptions:)yönteminde paylaşılan bir örnek yapılandırın:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturup aracılığıyla
UIApplicationDelegateAdaptorveyaNSApplicationDelegateAdaptorkullanarakAppyapınıza eklemeniz gerekir. Ayrıca, uygulama temsilcisi karıştırmayı da devre dışı bırakmanız gerekir. Daha fazla bilgi için SwiftUI talimatlarına bakın.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
signInAnonymouslyWithCompletion:yöntemini çağırın:Swift
Auth.auth().signInAnonymously { authResult, error in // ... }
Objective-C
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
signInAnonymouslyWithCompletion:yöntemi hatasız tamamlanırsa anonim kullanıcının hesap verileriniFIRAuthDataResultnesnesinden alabilirsiniz:Swift
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
Objective-C
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
Anonim hesabı kalıcı hesaba dönüştürme
Anonim bir kullanıcı uygulamanıza kaydolduğunda, yeni hesabıyla çalışmaya devam etmesine izin vermek isteyebilirsiniz. Örneğin, kullanıcının kaydolmadan önce alışveriş sepetine eklediği öğeleri yeni hesabının alışveriş sepetinde kullanılabilir hale getirebilirsiniz. Bunun için aşağıdaki adımları uygulayın:
- Kullanıcı kaydolduğunda, kullanıcının kimlik doğrulama sağlayıcısı için oturum açma akışını
FIRAuth.signInWithyöntemlerinden birini çağırma işlemi hariç olmak üzere tamamlayın. Örneğin, kullanıcının Google kimlik jetonunu, Facebook erişim jetonunu veya e-posta adresini ve şifresini alın. Yeni kimlik doğrulama sağlayıcısı için
FIRAuthCredentialalın:Google ile Oturum Açma
Swift
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
Objective-C
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
Facebook ile giriş
Swift
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Objective-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
E-posta ve şifreyle oturum açma
Swift
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Objective-C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
FIRAuthCredentialnesnesini, oturum açan kullanıcınınlinkWithCredential:completion:yöntemine iletin:Swift
user.link(with: credential) { authResult, error in // ... } }
Objective-C
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult *result, NSError *_Nullable error) { // ... }];
linkWithCredential:completion: çağrısı başarılı olursa kullanıcının yeni hesabı, anonim hesabın Firebase verilerine erişebilir.
Otomatik temizleme
Projenizi Firebase Authentication with Identity Platform sürümüne yükselttiyseniz Firebase konsolunda otomatik temizlemeyi etkinleştirebilirsiniz. Bu özelliği etkinleştirdiğinizde Firebase'in 30 günden eski anonim hesapları otomatik olarak silmesine izin vermiş olursunuz. Otomatik temizleme özelliğinin etkin olduğu projelerde anonim kimlik doğrulama, kullanım sınırlarına veya faturalandırma kotalarına dahil edilmez.
- Otomatik temizleme etkinleştirildikten sonra oluşturulan anonim hesaplar, oluşturulmalarından 30 gün sonra herhangi bir zamanda otomatik olarak silinebilir.
- Mevcut anonim hesaplar, otomatik temizleme etkinleştirildikten 30 gün sonra otomatik silme işlemine tabi tutulur.
- Otomatik temizlemeyi devre dışı bırakırsanız silinmesi planlanan anonim hesaplar silinmeye devam eder.
- Anonim bir hesabı herhangi bir oturum açma yöntemine bağlayarak "yükseltirseniz" hesap otomatik olarak silinmez.
Bu özelliği etkinleştirmeden önce kaç kullanıcının etkileneceğini görmek istiyorsanız ve projenizi Firebase Authentication with Identity Platform'ye yükselttiyseniz Cloud Logging'de is_anon'e göre filtreleyebilirsiniz.
Sonraki adımlar
Kullanıcılar artık Firebase ile kimlik doğrulayabildiğinden Firebase kurallarını kullanarak Firebase veritabanınızdaki verilere erişimlerini kontrol edebilirsiniz.