Apple प्लैटफ़ॉर्म पर Firebase से पुष्टि करें (original) (raw)

Firebase में पुष्टि करने के लिए, Firebase Authentication का इस्तेमाल करके कुछ समय के लिए गुमनाम खाते बनाए जा सकते हैं और उनका इस्तेमाल किया जा सकता है. इन अस्थायी गुमनाम खातों का इस्तेमाल, उन लोगों को अनुमति देने के लिए किया जा सकता है जिन्होंने अब तक आपके ऐप्लिकेशन के लिए साइन अप नहीं किया है. इससे वे सुरक्षा नियमों के तहत सुरक्षित किए गए डेटा के साथ काम कर सकते हैं. अगर कोई अनजान उपयोगकर्ता आपके ऐप्लिकेशन में साइन अप करने का फ़ैसला करता है, तो आपके पास उसके साइन-इन क्रेडेंशियल को अनजान खाते से लिंक करने का विकल्प होता है. इससे वह आने वाले समय में, सुरक्षित किए गए अपने डेटा का इस्तेमाल जारी रख पाएगा.

शुरू करने से पहले

  1. Firebase डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.
    1. Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलें. इसके बाद, File > Add Packages पर जाएं.
    2. जब आपसे कहा जाए, तब Firebase Apple प्लैटफ़ॉर्म SDK टूल की रिपॉज़िटरी जोड़ें:
      https://github.com/firebase/firebase-ios-sdk.git
    3. Firebase Authentication लाइब्रेरी चुनें.
    4. अपने टारगेट की बिल्ड सेटिंग के Other Linker Flags सेक्शन में, -ObjC फ़्लैग जोड़ें.
    5. इसके बाद, Xcode आपके पैकेज की डिपेंडेंसी से जुड़ी समस्या को हल करना शुरू कर देगा और उन्हें बैकग्राउंड में डाउनलोड करेगा.
  2. अगर आपने अब तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल से कनेक्ट करें.
  3. पहचान छिपाकर पुष्टि करने की सुविधा चालू करें:
    1. Firebase console में, सुरक्षा > पुष्टि पर जाएं.
    2. साइन इन करने का तरीका टैब में जाकर, पहचान छिपाकर साइन इन करने की सुविधा देने वाली कंपनी को चालू करें.
    3. ज़रूरी नहीं है: अगर आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो अपने-आप साफ़ होने की सुविधा चालू की जा सकती है. इस सेटिंग को चालू करने पर, 30 दिन से ज़्यादा पुराने गुमनाम खाते अपने-आप मिट जाएंगे. जिन प्रोजेक्ट में अपने-आप डेटा मिटाने की सुविधा चालू है उनमें अब गुमनाम पुष्टि को इस्तेमाल की सीमाओं या बिलिंग कोटा में नहीं गिना जाएगा. अपने-आप साफ़ होने की सुविधा देखें.

Firebase की मदद से, बिना पहचान बताए पुष्टि करना

जब साइन आउट किया हुआ कोई उपयोगकर्ता, ऐप्लिकेशन की ऐसी सुविधा का इस्तेमाल करता है जिसके लिए Firebase से पुष्टि करना ज़रूरी है, तो यहां दिया गया तरीका अपनाकर उपयोगकर्ता को पहचान छिपाकर साइन इन करें:

  1. अपने FirebaseCore में FirebaseCore मॉड्यूल इंपोर्ट करें. साथ ही, अपने ऐप्लिकेशन डेलिगेट में इस्तेमाल किए जाने वाले अन्य Firebase मॉड्यूल भी इंपोर्ट करें.UIApplicationDelegate उदाहरण के लिए, 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;
// ... 2. अपने ऐप्लिकेशन डेलिगेट के 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]; 3. अगर 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()
}
}
}
} 4. signInAnonymouslyWithCompletion: तरीके को कॉल करें:

Swift

Auth.auth().signInAnonymously { authResult, error in
// ...
}

Objective-C

[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}]; 5. अगर 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;

गुमनाम खाते को स्थायी खाते में बदलना

जब कोई अनजान व्यक्ति आपके ऐप्लिकेशन में साइन अप करता है, तो हो सकता है कि आपको उसे अपने नए खाते से काम जारी रखने की अनुमति देनी हो. उदाहरण के लिए, हो सकता है कि आपको साइन अप करने से पहले, उपयोगकर्ता ने शॉपिंग कार्ट में जो आइटम जोड़े थे उन्हें उसके नए खाते के शॉपिंग कार्ट में उपलब्ध कराना हो. इसके लिए, यह तरीका अपनाएं:

  1. जब उपयोगकर्ता साइन अप करता है, तो उपयोगकर्ता की पुष्टि करने वाली सेवा देने वाली कंपनी के लिए, साइन-इन फ़्लो पूरा करें. हालांकि, FIRAuth.signInWith तरीकों में से किसी एक को कॉल न करें. उदाहरण के लिए, उपयोगकर्ता का Google आईडी टोकन, Facebook ऐक्सेस टोकन या ईमेल पता और पासवर्ड पाएं.
  2. पुष्टि करने की नई सेवा के लिए 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]; 3. साइन-इन करने वाले उपयोगकर्ता के linkWithCredential:completion: ऑब्जेक्ट को linkWithCredential:completion: तरीके से पास करें:FIRAuthCredential

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 दिन से ज़्यादा पुराने ऐसे खातों को अपने-आप मिटा दे जिनमें उपयोगकर्ता की पहचान नहीं की गई है. जिन प्रोजेक्ट में अपने-आप साफ़ होने की सुविधा चालू है उनमें पहचान छिपाकर पुष्टि करने की सुविधा का इस्तेमाल, इस्तेमाल की सीमाओं या बिलिंग कोटा में नहीं गिना जाएगा.

अगर आपको यह सुविधा चालू करने से पहले यह देखना है कि इससे कितने उपयोगकर्ताओं पर असर पड़ेगा और आपने अपने प्रोजेक्ट को Firebase Authentication with Identity Platform पर अपग्रेड किया है, तो Cloud Logging में is_anon के हिसाब से फ़िल्टर किया जा सकता है.

अगले चरण

अब उपयोगकर्ता Firebase की मदद से पुष्टि कर सकते हैं. इसलिए, Firebase के नियमों का इस्तेमाल करके, अपने Firebase डेटाबेस में मौजूद डेटा को ऐक्सेस करने की उनकी अनुमति को कंट्रोल किया जा सकता है.