Firebase ile kimlik doğrulaması yapmak üzere geçici anonim hesaplar oluşturmak ve kullanmak için Firebase Authentication'ı kullanabilirsiniz. Bu geçici anonim hesaplar, uygulamanıza henüz kaydolmamış kullanıcıların güvenlik kurallarıyla korunan verilerle çalışmasına izin vermek için kullanılabilir. Anonim bir kullanıcı uygulamanıza kaydolmaya karar verirse, gelecekteki oturumlarda korunan verileriyle çalışmaya devam edebilmeleri için oturum açma kimlik bilgilerini anonim hesaba bağlayabilirsiniz .
Sen başlamadan önce
Firebase bağımlılıklarını kurmak ve yönetmek için Swift Paket Yöneticisi'ni kullanın.
- Xcode'da, uygulama projeniz açıkken File > Add Packages seçeneğine gidin.
- İstendiğinde, Firebase Apple platformları SDK deposunu ekleyin:
- Firebase Kimlik Doğrulama kitaplığını seçin.
- Bittiğinde, Xcode otomatik olarak bağımlılıklarınızı arka planda çözmeye ve indirmeye başlayacaktır.
https://github.com/firebase/firebase-ios-sdk
Ardından, 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 yetkilendirmeyi etkinleştir:
- Firebase konsolunda , Yetkilendirme bölümünü açın.
- Oturum Açma Yöntemleri sayfasında, Anonim oturum açma yöntemini etkinleştirin.
Firebase ile anonim olarak kimlik doğrulaması yapın
Oturumu kapatmış bir kullanıcı, Firebase ile kimlik doğrulaması gerektiren bir uygulama özelliği kullandığında, aşağıdaki adımları tamamlayarak kullanıcıda anonim olarak oturum açın:
-
UIApplicationDelegate
FirebaseCore
modülünü ve uygulama temsilcinizin kullandığı diğer Firebase modüllerini içe aktarın. Örneğin, Cloud Firestore ve Kimlik Doğrulamayı kullanmak için:Süratli
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Amaç-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Genellikle uygulamanızın
application:didFinishLaunchingWithOptions:
yönteminde birFirebaseApp
paylaşılan örneği yapılandırın:Süratli
// Use Firebase library to configure APIs FirebaseApp.configure()
Amaç-C
// Use Firebase library to configure APIs [FIRApp configure];
-
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ürün
Anonim bir kullanıcı uygulamanıza kaydolduğunda, yeni hesaplarıyla çalışmalarına devam etmelerine izin vermek isteyebilirsiniz; örneğin, kullanıcının kaydolmadan önce alışveriş sepetine eklediği ürünleri yeni hesapları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 birinin çağrılması dahil ancak buna kadar tamamlayın. Örneğin, kullanıcının Google ID 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
GIDAuthentication *authentication = user.authentication; FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken accessToken:authentication.accessToken];
Facebook Girişi
Süratli
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Amaç-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
E-posta-şifre 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.
Sonraki adımlar
Artık kullanıcılar Firebase ile kimliklerini doğrulayabildiğine göre, Firebase kurallarını kullanarak Firebase veritabanınızdaki verilere erişimlerini kontrol edebilirsiniz.