Firebase के साथ पुष्टि करने के लिए, Firebase Authentication का इस्तेमाल करके कुछ समय के लिए गुमनाम खाते बनाए जा सकते हैं और उनका इस्तेमाल किया जा सकता है. इन अस्थायी गुमनाम खातों का इस्तेमाल, उन उपयोगकर्ताओं को अनुमति देने के लिए किया जा सकता है जिन्होंने अब तक आपके ऐप्लिकेशन के लिए साइन अप नहीं किया है. इससे वे सुरक्षा नियमों के तहत सुरक्षित डेटा के साथ काम कर सकते हैं. अगर कोई ऐसा उपयोगकर्ता आपके ऐप्लिकेशन के लिए साइन अप करता है जिसने पहचान छिपाकर ऐप्लिकेशन का इस्तेमाल किया है, तो उसके साइन-इन क्रेडेंशियल को पहचान छिपाकर बनाए गए खाते से लिंक किया जा सकता है. इससे वह आने वाले समय में, सुरक्षित किए गए अपने डेटा का इस्तेमाल जारी रख पाएगा.
शुरू करने से पहले
-
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 कंसोल में, Auth सेक्शन खोलें.
- साइन-इन करने के तरीके पेज पर, बिना नाम के साइन-इन करने का तरीका चालू करें.
- ज़रूरी नहीं है: अगर आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो अपने-आप साफ़ होने की सुविधा चालू की जा सकती है. इस सेटिंग को चालू करने पर, 30 दिन से ज़्यादा पुराने ऐसे खाते अपने-आप मिट जाएंगे जिनकी पहचान ज़ाहिर नहीं की गई है. जिन प्रोजेक्ट में अपने-आप साफ़ होने की सुविधा चालू है उनमें, नाम छिपाकर पुष्टि करने की सुविधा को इस्तेमाल की सीमाओं या बिलिंग कोटा में नहीं गिना जाएगा. अपने-आप साफ़ होने की सुविधा देखें.
Firebase की मदद से, बिना पहचान बताए पुष्टि करना
जब साइन आउट किया हुआ कोई उपयोगकर्ता, ऐप्लिकेशन की ऐसी सुविधा का इस्तेमाल करता है जिसके लिए Firebase से पुष्टि करना ज़रूरी है, तो यहां दिया गया तरीका अपनाकर उपयोगकर्ता को पहचान छिपाकर साइन इन करें:
- अपने
UIApplicationDelegate
मेंFirebaseCore
मॉड्यूल इंपोर्ट करें. साथ ही, अपने ऐप्लिकेशन डेलिगेट में इस्तेमाल किए जाने वाले अन्य 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 डेटाबेस में मौजूद डेटा को ऐक्सेस करने की उनकी अनुमति को कंट्रोल किया जा सकता है.