欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用,并在之后根据需要轻松地扩大应用规模。立即报名

ऐप्पल प्लेटफॉर्म पर गुमनाम रूप से फायरबेस के साथ प्रमाणित करें

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

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

फायरबेस निर्भरता को स्थापित और प्रबंधित करने के लिए स्विफ्ट पैकेज मैनेजर का उपयोग करें।

  1. Xcode में, आपका ऐप प्रोजेक्ट खुला होने के साथ, File > Add Packages पर नेविगेट करें।
  2. संकेत मिलने पर, Firebase Apple प्लेटफॉर्म्स SDK रिपॉजिटरी जोड़ें:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. फायरबेस प्रमाणीकरण पुस्तकालय चुनें।
  5. समाप्त होने पर, Xcode स्वचालित रूप से पृष्ठभूमि में आपकी निर्भरता को हल करना और डाउनलोड करना शुरू कर देगा।

अगला, कुछ कॉन्फ़िगरेशन चरण करें:

  1. अगर आपने अभी तक अपने ऐप को अपने Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो इसे Firebase कंसोल से करें।
  2. अनाम प्रमाणीकरण सक्षम करें:
    1. फायरबेस कंसोल में, प्रामाणिक अनुभाग खोलें।
    2. साइन-इन विधि पृष्ठ पर, अनाम साइन-इन विधि को सक्षम करें।
    3. वैकल्पिक : स्वचालित सफाई सक्षम करें। जब आप इस सेटिंग को सक्षम करते हैं, तो 30 दिनों से अधिक पुराने अनाम खाते अपने आप हटा दिए जाएंगे। स्वचालित क्लीन-अप सक्षम परियोजनाओं में, अनाम प्रमाणीकरण को अब उपयोग सीमा या बिलिंग कोटा में नहीं गिना जाएगा। स्वचालित सफाई देखें।

गुमनाम रूप से फायरबेस के साथ प्रमाणित करें

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

  1. अपने UIApplicationDelegate में FirebaseCore मॉड्यूल आयात करें, साथ ही आपके ऐप प्रतिनिधि द्वारा उपयोग किए जाने वाले किसी भी अन्य Firebase मॉड्यूल को आयात करें। उदाहरण के लिए, क्लाउड फायरस्टोर और प्रमाणीकरण का उपयोग करने के लिए:

    तीव्र

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    उद्देश्य सी

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. अपने ऐप प्रतिनिधि के application(_:didFinishLaunchingWithOptions:) विधि में FirebaseApp साझा इंस्टेंस कॉन्फ़िगर करें:

    तीव्र

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    उद्देश्य सी

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. signInAnonymouslyWithCompletion: विधि:

    तीव्र

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

    उद्देश्य सी

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. यदि 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;
    

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

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

  1. जब उपयोगकर्ता साइन अप करता है, तो उपयोगकर्ता के प्रमाणीकरण प्रदाता के लिए FIRAuth.signInWith विधियों में से किसी एक को कॉल करके साइन-इन प्रवाह को पूरा करें, लेकिन इसमें शामिल नहीं है। उदाहरण के लिए, उपयोगकर्ता का Google आईडी टोकन, फेसबुक एक्सेस टोकन, या ईमेल पता और पासवर्ड प्राप्त करें।
  2. नए प्रमाणीकरण प्रदाता के लिए FIRAuthCredential प्राप्त करें:

    गूगल साइन-इन
    तीव्र
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    उद्देश्य सी
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    फेसबुक लोगिन
    तीव्र
    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];
    
  3. साइन-इन उपयोगकर्ता के लिंक के लिए FIRAuthCredential ऑब्जेक्ट पास linkWithCredential:completion: विधि:

    तीव्र
        user.link(with: credential) { authResult, error in
      // ...
    }
    }
    
    उद्देश्य सी
        [[FIRAuth auth].currentUser linkWithCredential:credential
        completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {
      // ...
    }];
    

यदि linkWithCredential:completion: को कॉल सफल होती है, तो उपयोगकर्ता का नया खाता अनाम खाते के Firebase डेटा तक पहुंच सकता है।

स्वचालित सफाई

जब आप Firebase कंसोल में स्वचालित क्लीन-अप सक्षम करते हैं, तो 30 दिनों से अधिक पुराने अनाम खाते अपने आप हटा दिए जाएंगे। इस सेटिंग को सक्षम करने से आपका उपयोगकर्ता डेटाबेस अप्रयुक्त खातों से भरने से बच जाता है। स्वचालित क्लीन-अप सक्षम परियोजनाओं में, अनाम प्रमाणीकरण की गणना उपयोग सीमा या बिलिंग कोटा में नहीं की जाएगी।

  • स्वचालित क्लीन-अप सक्षम करने के बाद बनाए गए किसी भी अनाम खाते को बनाने के 30 दिन बाद हटा दिया जाएगा।
  • स्वचालित क्लीन-अप सक्षम करने से पहले बनाए गए अनाम खातों को स्वचालित क्लीन-अप सक्षम करने के लगभग 30 दिनों के बाद हटा दिया जाएगा।
  • यदि आप स्वत: सफाई बंद कर देते हैं, तो हटाए जाने के लिए निर्धारित सभी अनाम खाते हटाए जाने के लिए निर्धारित रहेंगे।
  • यदि आप किसी अनाम खाते को किसी साइन-इन विधि से लिंक करके "अपग्रेड" करते हैं, तो खाता स्वचालित रूप से हटाया नहीं जाएगा।

यदि आप यह देखना चाहते हैं कि इस सुविधा को सक्षम करने से पहले कितने उपयोगकर्ता प्रभावित होंगे, और आपने अपने प्रोजेक्ट को पहचान प्लेटफ़ॉर्म के साथ Firebase प्रमाणीकरण में अपग्रेड किया है, तो आप क्लाउड लॉगिंग में is_anon द्वारा फ़िल्टर कर सकते हैं।

अगले कदम

अब जबकि उपयोगकर्ता Firebase से प्रमाणित कर सकते हैं, आप Firebase नियमों का उपयोग करके अपने Firebase डेटाबेस में डेटा तक उनकी पहुंच को नियंत्रित कर सकते हैं।