आप फायरबेस के साथ प्रमाणित करने के लिए अस्थायी अनाम खातों को बनाने और उपयोग करने के लिए फायरबेस प्रमाणीकरण का उपयोग कर सकते हैं। इन अस्थायी अनाम खातों का उपयोग उन उपयोगकर्ताओं को अनुमति देने के लिए किया जा सकता है जिन्होंने सुरक्षा नियमों द्वारा संरक्षित डेटा के साथ काम करने के लिए अभी तक आपके ऐप पर साइन अप नहीं किया है। यदि कोई अनाम उपयोगकर्ता आपके ऐप में साइन अप करने का निर्णय लेता है, तो आप उनके साइन-इन क्रेडेंशियल्स को अनाम खाते से लिंक कर सकते हैं ताकि वे भविष्य के सत्रों में अपने संरक्षित डेटा के साथ काम करना जारी रख सकें।
शुरू करने से पहले
फायरबेस निर्भरताओं को स्थापित और प्रबंधित करने के लिए स्विफ्ट पैकेज मैनेजर का उपयोग करें।
- Xcode में, अपने ऐप प्रोजेक्ट को खोलने के साथ, File > Add Packages पर नेविगेट करें।
- संकेत दिए जाने पर, Firebase Apple प्लेटफ़ॉर्म SDK रिपॉजिटरी जोड़ें:
- फायरबेस ऑथेंटिकेशन लाइब्रेरी चुनें।
- समाप्त होने पर, Xcode स्वचालित रूप से पृष्ठभूमि में आपकी निर्भरताओं को हल करना और डाउनलोड करना शुरू कर देगा।
https://github.com/firebase/firebase-ios-sdk
अगला, कुछ कॉन्फ़िगरेशन चरण करें:
- अगर आपने अभी तक अपने ऐप को अपने फायरबेस प्रोजेक्ट से कनेक्ट नहीं किया है, तो फायरबेस कंसोल से ऐसा करें।
- अनाम प्रमाणन सक्षम करें:
- Firebase कंसोल में, प्रामाणिक अनुभाग खोलें।
- साइन-इन मेथड्स पेज पर, बेनामी साइन-इन मेथड को सक्षम करें।
- वैकल्पिक : स्वचालित सफाई सक्षम करें। जब आप इस सेटिंग को सक्षम करते हैं, तो 30 दिनों से अधिक पुराने अज्ञात खाते स्वचालित रूप से हटा दिए जाएँगे। स्वचालित क्लीन-अप सक्षम वाली परियोजनाओं में, अनाम प्रमाणीकरण अब उपयोग सीमा या बिलिंग कोटा की ओर नहीं गिना जाएगा। स्वचालित सफाई देखें।
गुमनाम रूप से फायरबेस के साथ प्रमाणित करें
जब साइन-आउट किया गया उपयोगकर्ता ऐप सुविधा का उपयोग करता है जिसके लिए फायरबेस के साथ प्रमाणीकरण की आवश्यकता होती है, तो निम्न चरणों को पूरा करके उपयोगकर्ता को गुमनाम रूप से साइन इन करें:
- अपने
UIApplicationDelegate
मेंFirebaseCore
मॉड्यूल आयात करें, साथ ही आपके ऐप प्रतिनिधि द्वारा उपयोग किए जाने वाले किसी भी अन्य Firebase मॉड्यूल को आयात करें। उदाहरण के लिए, क्लाउड फायरस्टार और प्रमाणीकरण का उपयोग करने के लिए:स्विफ्टयूआई
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
तीव्र
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
उद्देश्य सी
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- अपने ऐप प्रतिनिधि के
application(_:didFinishLaunchingWithOptions:)
विधि मेंFirebaseApp
साझा उदाहरण कॉन्फ़िगर करें:स्विफ्टयूआई
// Use Firebase library to configure APIs FirebaseApp.configure()
तीव्र
// Use Firebase library to configure APIs FirebaseApp.configure()
उद्देश्य सी
// Use Firebase library to configure APIs [FIRApp configure];
- यदि आप SwiftUI का उपयोग कर रहे हैं, तो आपको एक एप्लिकेशन प्रतिनिधि बनाना होगा और इसे
UIApplicationDelegateAdaptor
याNSApplicationDelegateAdaptor
के माध्यम से अपनेApp
स्ट्रक्चर में संलग्न करना होगा। आपको ऐप डेलिगेट स्विज़लिंग को भी अक्षम करना होगा। अधिक जानकारी के लिए, SwiftUI निर्देश देखें.स्विफ्टयूआई
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
-
signInAnonymouslyWithCompletion:
विधि को कॉल करें:तीव्र
Auth.auth().signInAnonymously { authResult, error in // ... }
उद्देश्य सी
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- अगर
signInAnonymouslyWithCompletion:
विधि त्रुटि के बिना पूर्ण हो जाती है, तो आपFIRAuthDataResult
ऑब्जेक्ट से अज्ञात उपयोगकर्ता का खाता डेटा प्राप्त कर सकते हैं:तीव्र
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
उद्देश्य सी
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
अनाम खाते को स्थायी खाते में बदलें
जब कोई अनाम उपयोगकर्ता आपके ऐप में साइन अप करता है, तो हो सकता है कि आप उन्हें अपने नए खाते के साथ अपना काम जारी रखने की अनुमति देना चाहें—उदाहरण के लिए, हो सकता है कि आप उपयोगकर्ता द्वारा साइन अप करने से पहले उनके शॉपिंग कार्ट में जोड़े गए आइटम को उनके नए खाते में उपलब्ध कराना चाहें खाते की खरीदारी की टोकरी। ऐसा करने के लिए, निम्नलिखित चरणों को पूरा करें:
- जब उपयोगकर्ता साइन अप करता है, तो उपयोगकर्ता के प्रमाणीकरण प्रदाता के लिए साइन-इन प्रवाह को पूरा करें, लेकिन इसमें शामिल नहीं है,
FIRAuth.signInWith
विधियों में से किसी एक को कॉल करना। उदाहरण के लिए, उपयोगकर्ता का Google ID टोकन, Facebook एक्सेस टोकन, या ईमेल पता और पासवर्ड प्राप्त करें। नए प्रमाणीकरण प्रदाता के लिए
FIRAuthCredential
प्राप्त करें:गूगल साइन-इन
तीव्र
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
उद्देश्य सी
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
फेसबुक लॉग इन
तीव्र
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
उद्देश्य सी
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
ईमेल-पासवर्ड साइन-इन
तीव्र
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
उद्देश्य सी
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
साइन-इन उपयोगकर्ता के लिंक के लिए
FIRAuthCredential
ऑब्जेक्ट पास करेंlinkWithCredential:completion:
विधि:तीव्र
user.link(with: credential) { authResult, error in // ... } }
उद्देश्य सी
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult *result, NSError *_Nullable error) { // ... }];
यदि linkWithCredential:completion:
पर कॉल सफल होता है, तो उपयोगकर्ता का नया खाता अनाम खाते के Firebase डेटा तक पहुंच सकता है।
स्वचालित सफाई
जब आप फायरबेस कंसोल में स्वचालित क्लीन-अप सक्षम करते हैं, तो 30 दिनों से अधिक पुराने अनाम खाते स्वचालित रूप से हटा दिए जाएंगे। इस सेटिंग को सक्षम करने से आपका उपयोगकर्ता डेटाबेस अप्रयुक्त खातों को भरने से रोकता है। स्वचालित क्लीन-अप सक्षम वाली परियोजनाओं में, अज्ञात प्रमाणीकरण उपयोग सीमा या बिलिंग कोटा की ओर नहीं गिना जाएगा।
- स्वत: क्लीन-अप सक्षम करने के बाद बनाए गए कोई भी अनाम खाते निर्माण के 30 दिन बाद हटा दिए जाएंगे।
- स्वचालित क्लीन-अप सक्षम करने से पहले बनाए गए अज्ञात खाते स्वचालित क्लीन-अप सक्षम करने के लगभग 30 दिनों के बाद हटा दिए जाएंगे.
- यदि आप स्वत: क्लीन-अप को बंद कर देते हैं, तो हटाए जाने के लिए शेड्यूल किया गया कोई भी अनाम खाता हटाए जाने के लिए शेड्यूल रहेगा।
- यदि आप किसी अज्ञात खाते को किसी साइन-इन विधि से लिंक करके "अपग्रेड" करते हैं, तो खाता स्वचालित रूप से हटाया नहीं जाएगा।
यदि आप यह देखना चाहते हैं कि इस सुविधा को सक्षम करने से पहले कितने उपयोगकर्ता प्रभावित होंगे, और आपने अपने प्रोजेक्ट को पहचान प्लेटफ़ॉर्म के साथ Firebase प्रमाणीकरण में अपग्रेड कर लिया है, तो आप क्लाउड लॉगिंग में is_anon
द्वारा फ़िल्टर कर सकते हैं।
अगले कदम
अब जबकि उपयोगकर्ता Firebase के साथ प्रमाणित कर सकते हैं, आप Firebase नियमों का उपयोग करके अपने Firebase डेटाबेस में डेटा तक उनकी पहुंच को नियंत्रित कर सकते हैं।