Firebase Authentication का इस्तेमाल करके, कुछ समय के लिए बिना नाम वाले खाते बनाए जा सकते हैं और उनका इस्तेमाल किया जा सकता है. इन खातों का इस्तेमाल, Firebase से पुष्टि करने के लिए किया जा सकता है. इन अस्थायी खातों का इस्तेमाल करके, उन उपयोगकर्ताओं को भी सुरक्षा नियमों से सुरक्षित किए गए डेटा के साथ काम करने की अनुमति दी जा सकती है जिन्होंने अब तक आपके ऐप्लिकेशन में साइन अप नहीं किया है. अगर कोई अनजान उपयोगकर्ता आपके ऐप्लिकेशन पर साइन अप करने का फ़ैसला करता है, तो उसके साइन-इन क्रेडेंशियल को अनजान खाते से लिंक किया जा सकता है. इससे वह आने वाले सेशन में, अपने सुरक्षित डेटा के साथ काम करना जारी रख सकता है.
शुरू करने से पहले
-
Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.
- Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलें. इसके बाद, File > Add Packages पर जाएं.
- प्रॉम्प्ट मिलने पर, Firebase Apple प्लैटफ़ॉर्म SDK टूल की रिपॉज़िटरी जोड़ें:
- Firebase Authentication लाइब्रेरी चुनें.
- अपने टारगेट की बिल्ड सेटिंग के Other Linker Flags सेक्शन में,
-ObjCफ़्लैग जोड़ें. - इसके बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी से जुड़ी समस्या को हल करना और उन्हें डाउनलोड करना शुरू कर देगा.
https://github.com/firebase/firebase-ios-sdk.git
- अगर आपने अब तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल पर जाकर ऐसा करें.
-
पहचान छिपाकर पुष्टि करने की सुविधा चालू करें:
- Firebase कंसोल में, सुरक्षा > पुष्टि पर जाएं.
- साइन-इन का तरीका टैब में, बिना नाम बताए साइन-इन करने की सुविधा देने वाली कंपनी को चालू करें.
- ज़रूरी नहीं: अगर आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो अपने-आप क्लीन-अप होने की सुविधा चालू की जा सकती है. इस सेटिंग को चालू करने पर, 30 दिन से ज़्यादा पुराने ऐसे खाते अपने-आप मिट जाएंगे जिनकी पहचान ज़ाहिर नहीं की गई है. जिन प्रोजेक्ट में अपने-आप क्लीन-अप होने की सुविधा चालू है उनमें पहचान छिपाकर पुष्टि करने की सुविधा, अब इस्तेमाल करने की सीमाओं या बिलिंग कोटा में नहीं गिनी जाएगी. अपने-आप स्टोरेज खाली होने की सुविधा देखें.
Firebase की मदद से, बिना नाम बताए पुष्टि करना
जब साइन आउट किया हुआ कोई उपयोगकर्ता, ऐप्लिकेशन की ऐसी सुविधा का इस्तेमाल करता है जिसके लिए Firebase से पुष्टि करना ज़रूरी है, तो यहां दिया गया तरीका अपनाकर, उपयोगकर्ता को पहचान छिपाकर साइन इन करने की सुविधा दें:
FirebaseCoreमॉड्यूल को अपनेUIApplicationDelegateमें इंपोर्ट करें. साथ ही, ऐसे अन्य Firebase मॉड्यूल भी इंपोर्ट करें जिनका इस्तेमाल आपका ऐप्लिकेशन डेलिगेट करता है. उदाहरण के लिए, Cloud Firestore और Authentication का इस्तेमाल करने के लिए:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- अपने ऐप्लिकेशन डेलिगेट के
application(_:didFinishLaunchingWithOptions:)तरीके में,FirebaseAppशेयर किया गया इंस्टेंस कॉन्फ़िगर करें: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 का इस्तेमाल किया जा रहा है, तो आपको एक ऐप्लिकेशन डेलिगेट बनाना होगा और उसे
UIApplicationDelegateAdaptorयाNSApplicationDelegateAdaptorके ज़रिए अपनेAppस्ट्रक्चर से अटैच करना होगा. आपको ऐप्लिकेशन डेलिगेट स्विज़लिंग को भी बंद करना होगा. ज़्यादा जानकारी के लिए, SwiftUI के निर्देश देखें.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
signInAnonymouslyWithCompletion:वाले तरीके को कॉल करें:Swift
Auth.auth().signInAnonymously { authResult, error in // ... }
Objective-C
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- अगर
signInAnonymouslyWithCompletion:तरीका बिना किसी गड़बड़ी के पूरा हो जाता है, तोFIRAuthDataResultऑब्जेक्ट से, बिना पहचान वाले उपयोगकर्ता के खाते में मौजूद डेटा पाया जा सकता है: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;
किसी पहचान ज़ाहिर न करने वाले खाते को स्थायी खाते में बदलना
जब कोई अज्ञात उपयोगकर्ता आपके ऐप्लिकेशन में साइन अप करता है, तो हो सकता है कि आप उसे अपने नए खाते से काम जारी रखने की अनुमति देना चाहें. उदाहरण के लिए, हो सकता है कि आप उन आइटम को उपलब्ध कराना चाहें जिन्हें उपयोगकर्ता ने साइन अप करने से पहले अपने नए खाते के शॉपिंग कार्ट में जोड़ा था. ऐसा करने के लिए, यह तरीका अपनाएं:
- जब उपयोगकर्ता साइन अप करे, तो पुष्टि करने की सेवा देने वाली कंपनी के लिए, साइन-इन करने का फ़्लो पूरा करें. हालांकि, इसमें
FIRAuth.signInWithके किसी भी तरीके को कॉल करना शामिल नहीं है. उदाहरण के लिए, उपयोगकर्ता का Google आईडी टोकन, Facebook ऐक्सेस टोकन या ईमेल पता और पासवर्ड पाएं. पुष्टि करने की सुविधा देने वाली नई कंपनी के लिए,
FIRAuthCredentialपाएं:Google साइन-इन
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 Login
Swift
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Objective-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
ईमेल-पासवर्ड से साइन-इन
Swift
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Objective-C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
FIRAuthCredentialऑब्जेक्ट को साइन-इन किए हुए उपयोगकर्ता केlinkWithCredential:completion:तरीके में पास करें:Swift
user.link(with: credential) { authResult, error in // ... } }
Objective-C
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult *result, NSError *_Nullable error) { // ... }];
अगर linkWithCredential:completion: को किया गया कॉल पूरा हो जाता है, तो उपयोगकर्ता का नया खाता, पहचान छिपाने वाले खाते के Firebase डेटा को ऐक्सेस कर सकता है.
अपने-आप स्टोरेज खाली होने की सुविधा
अगर आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो Firebase कंसोल में जाकर, अपने-आप क्लीन-अप होने की सुविधा चालू की जा सकती है. इस सुविधा को चालू करने पर, Firebase को 30 दिन से ज़्यादा पुराने अज्ञात खातों को अपने-आप मिटाने की अनुमति मिल जाती है. जिन प्रोजेक्ट में अपने-आप क्लीन-अप होने की सुविधा चालू होती है उनमें पहचान छिपाकर पुष्टि करने की सुविधा, इस्तेमाल करने की सीमाओं या बिलिंग कोटा में नहीं गिनी जाएगी.
- अपने-आप डेटा मिटने की सुविधा चालू करने के बाद बनाए गए किसी भी अज्ञात खाते को, बनाए जाने के 30 दिनों के बाद किसी भी समय अपने-आप मिटाया जा सकता है.
- अपने-आप क्लीन-अप होने की सुविधा चालू करने के 30 दिनों के बाद, बिना नाम वाले मौजूदा खाते अपने-आप मिट जाएंगे.
- अपने-आप होने वाली सफ़ाई की सुविधा बंद करने पर, बिना नाम वाले जिन खातों को मिटाने के लिए शेड्यूल किया गया है उन्हें मिटाने का शेड्यूल बना रहेगा.
- अगर किसी पहचान ज़ाहिर न करने वाले खाते को साइन-इन करने के किसी तरीके से लिंक करके "अपग्रेड" किया जाता है, तो वह खाता अपने-आप नहीं मिटेगा.
अगर आपको यह सुविधा चालू करने से पहले यह देखना है कि कितने उपयोगकर्ताओं पर इसका असर पड़ेगा और आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड कर लिया है, तो Cloud Logging में is_anon के हिसाब से फ़िल्टर किया जा सकता है.
अगले चरण
अब उपयोगकर्ता, Firebase की मदद से अपनी पहचान की पुष्टि कर सकते हैं. साथ ही, Firebase के नियमों का इस्तेमाल करके, Firebase डेटाबेस में मौजूद डेटा के ऐक्सेस को कंट्रोल किया जा सकता है.