Firebase ile kimlik doğrulaması yapmak amacıyla geçici anonim hesaplar oluşturmak ve kullanmak için Firebase Kimlik Doğrulamasını 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 sağlamak için kullanılabilir. Anonim bir kullanıcı uygulamanıza kaydolmaya karar verirse, gelecekteki oturumlarda korunan verileriyle çalışmaya devam edebilmesi için oturum açma kimlik bilgilerini anonim hesaba bağlayabilirsiniz .
Sen başlamadan önce
Firebase bağımlılıklarını yüklemek ve yönetmek için Swift Paket Yöneticisini kullanın.
- Xcode'da uygulama projeniz açıkken Dosya > Paket Ekle'ye gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Firebase Kimlik Doğrulama kitaplığını seçin.
-
-ObjC
bayrağını hedefinizin derleme ayarlarının Diğer Bağlayıcı Bayrakları bölümüne ekleyin. - Bitirdiğinizde Xcode, bağımlılıklarınızı arka planda otomatik olarak çözmeye ve indirmeye başlayacaktır.
https://github.com/firebase/firebase-ios-sdk.git
Daha sonra bazı yapılandırma adımlarını gerçekleştirin:
- Uygulamanızı henüz Firebase projenize bağlamadıysanız bunu Firebase konsolundan yapın.
- Anonim kimlik doğrulamayı etkinleştir:
- Firebase konsolunda Kimlik Doğrulama bölümünü açın.
- Oturum Açma Yöntemleri sayfasında Anonim oturum açma yöntemini etkinleştirin.
- İsteğe bağlı : Otomatik temizlemeyi etkinleştirin. Bu ayarı etkinleştirdiğinizde 30 günden eski anonim hesaplar otomatik olarak silinecektir. Otomatik temizlemenin etkin olduğu projelerde, anonim kimlik doğrulama artık kullanım sınırlarına veya faturalandırma kotalarına dahil edilmeyecektir. Bkz. Otomatik temizleme .
Firebase ile anonim olarak kimlik doğrulaması yapın
Oturumu kapatmış bir kullanıcı, Firebase ile kimlik doğrulaması gerektiren bir uygulama özelliğini kullandığında, aşağıdaki adımları tamamlayarak kullanıcının anonim olarak oturum açmasını sağlayın:
-
FirebaseCore
modülünüUIApplicationDelegate
ve uygulama temsilcinizin kullandığı diğer Firebase modüllerine aktarın. Örneğin, Cloud Firestore ve Authentication'ı kullanmak için:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Süratli
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Amaç-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Uygulama temsilcinizin
application(_:didFinishLaunchingWithOptions:)
yöntemindeFirebaseApp
paylaşılan örneğini yapılandırın:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Süratli
// Use Firebase library to configure APIs FirebaseApp.configure()
Amaç-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI kullanıyorsanız, bir uygulama temsilcisi oluşturmalı ve bunu
UIApplicationDelegateAdaptor
veyaNSApplicationDelegateAdaptor
aracılığıylaApp
yapınıza eklemelisiniz. Ayrıca uygulama temsilcisinin swizzling özelliğini de devre dışı bırakmalısınız. 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:Süratli
Auth.auth().signInAnonymously { authResult, error in // ... }
Amaç-C
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
-
signInAnonymouslyWithCompletion:
yöntemi hatasız tamamlanırsa, anonim kullanıcının hesap verileriniFIRAuthDataResult
nesnesinden alabilirsiniz:Süratli
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
Amaç-C
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
Anonim bir hesabı kalıcı bir hesaba dönüştürme
Anonim bir kullanıcı uygulamanıza kaydolduğunda, yeni hesabıyla çalışmalarına devam etmesine izin vermek isteyebilirsiniz; örneğin, kullanıcının kaydolmadan önce alışveriş sepetine eklediği öğeleri yeni hesabında kullanılabilir hale getirmek isteyebilirsiniz. hesabın alışveriş sepeti. Bunu yapmak için aşağıdaki adımları tamamlayın:
- Kullanıcı kaydolduğunda, kullanıcının kimlik doğrulama sağlayıcısı için oturum açma akışını,
FIRAuth.signInWith
yöntemlerinden birini çağırana kadar (bu işlem dahil değil) tamamlayın. Örneğin, kullanıcının Google Kimliği jetonunu, Facebook erişim jetonunu veya e-posta adresini ve şifresini alın. Yeni kimlik doğrulama sağlayıcısı için bir
FIRAuthCredential
alın:Google Oturum Açma
Süratli
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
Amaç-C
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
Facebook Girişi
Süratli
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Amaç-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
E-posta-şifreyle oturum açma
Süratli
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Amaç-C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
FIRAuthCredential
nesnesini oturum açan kullanıcınınlinkWithCredential:completion:
yöntemine iletin:Süratli
user.link(with: credential) { authResult, error in // ... } }
Amaç-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
Firebase konsolunda otomatik temizlemeyi etkinleştirdiğinizde 30 günden eski anonim hesaplar otomatik olarak silinir. Bu ayarın etkinleştirilmesi, kullanıcı veritabanınızın kullanılmayan hesaplarla dolmasını önler. Otomatik temizlemenin etkin olduğu projelerde anonim kimlik doğrulama, kullanım sınırlarına veya faturalandırma kotalarına dahil edilmeyecektir.
- Otomatik temizleme etkinleştirildikten sonra oluşturulan tüm anonim hesaplar, oluşturulduktan 30 gün sonra silinecektir.
- Otomatik temizleme etkinleştirilmeden önce oluşturulan anonim hesaplar, otomatik temizleme etkinleştirildikten yaklaşık 30 gün sonra silinecektir.
- Otomatik temizlemeyi kapatırsanız silinmesi planlanan tüm anonim hesaplar, silinmesi planlanmış olarak kalır.
- Anonim bir hesabı herhangi bir oturum açma yöntemine bağlayarak "yükseltirseniz", hesap otomatik olarak silinmeyecektir.
Bu özelliği etkinleştirmeden önce kaç kullanıcının etkileneceğini görmek istiyorsanız ve projenizi Identity Platform ile Firebase Authentication'a yükselttiyseniz Cloud Logging'de is_anon
göre filtreleme yapabilirsiniz.
Sonraki adımlar
Artık kullanıcılar Firebase ile kimlik doğrulayabildiğine göre, Firebase kurallarını kullanarak Firebase veritabanınızdaki verilere erişimlerini kontrol edebilirsiniz.