अपने ऐप्लिकेशन में Google साइन-इन को इंटिग्रेट करके, उपयोगकर्ताओं को उनके Google खातों का इस्तेमाल करके Firebase से पुष्टि करने की सुविधा दी जा सकती है.
शुरू करने से पहले
अपना Unity प्रोजेक्ट सेट अप करना
Firebase Authentication का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:
अपने Unity प्रोजेक्ट को रजिस्टर करें और उसे Firebase का इस्तेमाल करने के लिए कॉन्फ़िगर करें.
अगर आपका Unity प्रोजेक्ट पहले से ही Firebase का इस्तेमाल करता है, तो इसका मतलब है कि वह Firebase के लिए पहले से ही रजिस्टर और कॉन्फ़िगर किया गया है.
अगर आपके पास कोई Unity प्रोजेक्ट नहीं है, तो सैंपल के तौर पर मिला ऐप्लिकेशन डाउनलोड किया जा सकता है.
अपने Unity प्रोजेक्ट में Firebase Unity SDK (खास तौर पर,
FirebaseAuth.unitypackage) जोड़ें.
ध्यान दें कि अपने Unity प्रोजेक्ट में Firebase जोड़ने के लिए, आपको Firebase कंसोल और अपने खुले हुए Unity प्रोजेक्ट, दोनों में टास्क करने होंगे. उदाहरण के लिए, कंसोल से Firebase की कॉन्फ़िगरेशन फ़ाइलें डाउनलोड करें और फिर उन्हें अपने Unity प्रोजेक्ट में ले जाएं.
अपना Firebase प्रोजेक्ट और क्रेडेंशियल सेट अप करना
Android: Firebase कंसोल में, अपने ऐप्लिकेशन का SHA-1 फ़िंगरप्रिंट डालें:
- Firebase कंसोल में,
सेटिंग > सामान्य टैब पर जाएं. आपके ऐप्लिकेशन कार्ड पर जाएं और अपना Android ऐप्लिकेशन चुनें. इसके बाद, SHA सर्टिफ़िकेट फ़िंगरप्रिंट फ़ील्ड में अपना SHA-1 फ़िंगरप्रिंट जोड़ें.
keytoolका इस्तेमाल करके, अपने कीस्टोर का SHA-1 फ़िंगरप्रिंट वापस पाया जा सकता है:keytool -keystore path-to-keystore.keystore -list -vअपने ऐप्लिकेशन का SHA फ़िंगरप्रिंट पाने के बारे में ज़्यादा जानकारी के लिए, अपने क्लाइंट की पुष्टि करना देखें.
- Firebase कंसोल में,
Google साइन-इन की सुविधा चालू करें और अपना वेब क्लाइंट आईडी कॉपी करें:
- Firebase कंसोल में, सुरक्षा > पुष्टि पर जाएं.
- साइन-इन का तरीका टैब में, Google साइन-इन की सेवा देने वाली कंपनी को चालू करें.
- वेब SDK टूल का कॉन्फ़िगरेशन सेक्शन को बड़ा करें और अपना वेब क्लाइंट आईडी (उदाहरण के लिए,
123456-abc.apps.googleusercontent.com) कॉपी करें. यह आपके आईडी टोकन के ऑडियंस (aud) दावे को दिखाता है. साथ ही, Android और iOS, दोनों के लिए ज़रूरी है. - सेव करें पर क्लिक करें.
अपनी Firebase कॉन्फ़िगरेशन फ़ाइलों को अपडेट करें और अपने iOS रिवर्स क्लाइंट आईडी को कॉपी करें:
- Firebase कंसोल (Android के लिए
और iOS के लिएgoogle-services.json ) से, Firebase की सबसे नई कॉन्फ़िगरेशन फ़ाइलें डाउनलोड करें. साथ ही, अपने Unity प्रोजेक्ट में मौजूद पुरानी फ़ाइलों को नई फ़ाइलों से बदलें. अपने Unity प्रोजेक्ट में Firebase जोड़ना देखें.GoogleService-Info.plist - iOS: अपनी
फ़ाइल खोलें औरGoogleService-Info.plist REVERSED_CLIENT_IDकुंजी की वैल्यू कॉपी करें. उदाहरण के लिए,com.googleusercontent.apps.12345-abc. iOS रीडायरेक्ट यूआरएल स्कीम को कॉन्फ़िगर करने के लिए, इस वैल्यू की ज़रूरत होती है.
- Firebase कंसोल (Android के लिए
अपने Unity प्रोजेक्ट में Google साइन-इन प्लगिन को इंटिग्रेट करना
प्लगिन इंपोर्ट करना:
- अगर आपको किसी मौजूदा प्रोजेक्ट में इंटिग्रेट करना है, तो आगे बढ़ने से पहले अपने प्रोजेक्ट का बैक अप लें और Google साइन-इन के पुराने प्लग इन हटाएं.
GoogleSignInNative.unitypackageको GitHub से डाउनलोड करें और इसे अपने Unity प्रोजेक्ट (ऐसेट > पैकेज इंपोर्ट करें > कस्टम पैकेज) में इंपोर्ट करें. पक्का करें कि सभी फ़ाइलें चुनी गई हों. इसके बाद, इंपोर्ट करें पर क्लिक करें.
प्लग इन की सेटिंग कॉन्फ़िगर करना:
- Unity Editor में, Window > Google साइन-इन Native > Settings पर जाएं.
- पहले फ़ील्ड में अपना वेब क्लाइंट आईडी चिपकाएं.
- दूसरे फ़ील्ड में अपना iOS रिवर्स क्लाइंट आईडी चिपकाएं.
- सेटिंग सेव करें पर क्लिक करें.
नेटिव डिपेंडेंसी को ठीक करना:
- Assets > External Dependency Manager > Android Resolver > Force Resolve पर जाएं.
- इसके बाद, आपको एक मैसेज दिखेगा, जिसमें बताया जाएगा कि आपका अनुरोध स्वीकार कर लिया गया है. इससे नेटिव
googleidऔरandroidxCredential Manager लाइब्रेरी डाउनलोड हो जाती हैं.
Firebase.Auth.FirebaseAuth क्लास को ऐक्सेस करना
FirebaseAuth क्लास, सभी एपीआई कॉल के लिए गेटवे है.
इसे FirebaseAuth.DefaultInstance से ऐक्सेस किया जा सकता है.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Firebase की मदद से पुष्टि करना
अपने सीन में
GoogleSignInManagerसेट अप करना:GoogleSignInManagerनाम के शुरुआती सीन में, एक खालीGameObjectबनाएं.- इसमें
GoogleSignInManager.csस्क्रिप्ट अटैच करें. GoogleSignInNativeSettingsऐसेट (Assets/GoogleSignInNative/Resourcesमें मौजूद) को स्क्रिप्ट में मौजूद साइन इन सेटिंग स्लॉट में खींचें और छोड़ें.
Google साइन-इन को ट्रिगर करें और आईडी टोकन को Firebase क्रेडेंशियल से बदलें:
एक कंट्रोलर स्क्रिप्ट बनाएं जो
GoogleSignInManager.OnSignInCompletedऔरGoogleSignInManager.OnSignInFailedको सब्सक्राइब करे,GoogleSignInManager.Instance.StartSignIn()की मदद से साइन-इन ट्रिगर करे, औरGoogleAuthProvider.GetCredentialका इस्तेमाल करके, नतीजे के तौर पर मिले Google आईडी टोकन को Firebase क्रेडेंशियल से बदले:using Firebase.Auth; using Firebase.Extensions; using UnityEngine; public class MyAuthController : MonoBehaviour { private FirebaseAuth auth; private void Awake() { auth = FirebaseAuth.DefaultInstance; } private void OnEnable() { GoogleSignInManager.OnSignInCompleted += HandleSignInSuccess; GoogleSignInManager.OnSignInFailed += HandleSignInFailure; } private void OnDisable() { GoogleSignInManager.OnSignInCompleted -= HandleSignInSuccess; GoogleSignInManager.OnSignInFailed -= HandleSignInFailure; } public void OnSignInButtonClick() { GoogleSignInManager.Instance.StartSignIn(); } private void HandleSignInSuccess(string idToken) { Debug.Log("[Auth] Google Sign-In succeeded. Authenticating with Firebase..."); Credential credential = GoogleAuthProvider.GetCredential(idToken, null); auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWithOnMainThread(task => { if (task.IsCanceled) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception); return; } AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); }); } private void HandleSignInFailure(string error) { Debug.LogError($"[Auth] Google Sign-In failed: {error}"); } }
अपना ऐप्लिकेशन बनाएं
Android
- पक्का करें कि प्लेयर सेटिंग में मौजूद आपके पैकेज का नाम, आपके Firebase और Google Cloud OAuth क्रेडेंशियल से पूरी तरह मेल खाता हो.
- पक्का करें कि आपका कम से कम एपीआई लेवल, 34 या इसके बाद के वर्शन पर सेट हो.
- Build and Run पर क्लिक करें.
iOS
- Xcode प्रोजेक्ट जनरेट करने के लिए, Unity में अपना प्रोजेक्ट बनाएं. इसके बाद, जनरेट की गई
.xcworkspaceफ़ाइल खोलें. - Xcode में, Signing & Capabilities टैब पर जाएं और अपनी डेवलपमेंट टीम चुनें.
- यह प्लगिन, आपके Xcode प्रोजेक्ट में कस्टम यूआरएल स्कीम (
REVERSED_CLIENT_ID) को अपने-आप जोड़ देता है. किसी फ़िज़िकल डिवाइस पर ऐप्लिकेशन बनाएं और चलाएं.
अगले चरण
जब कोई उपयोगकर्ता पहली बार साइन इन करता है, तो एक नया उपयोगकर्ता खाता बन जाता है. साथ ही, उसे उन क्रेडेंशियल से लिंक कर दिया जाता है जिनका इस्तेमाल करके उपयोगकर्ता ने साइन इन किया है. जैसे, उपयोगकर्ता नाम और पासवर्ड, फ़ोन नंबर या पुष्टि करने वाली सेवा की जानकारी. यह नया खाता आपके Firebase प्रोजेक्ट के हिस्से के तौर पर सेव किया जाता है. इसका इस्तेमाल, आपके प्रोजेक्ट के हर ऐप्लिकेशन में किसी उपयोगकर्ता की पहचान करने के लिए किया जा सकता है. इससे कोई फ़र्क़ नहीं पड़ता कि उपयोगकर्ता ने कैसे साइन इन किया है.
-
अपने ऐप्लिकेशन में, उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी पाने के लिए,
Firebase.Auth.FirebaseUserऑब्जेक्ट का इस्तेमाल किया जा सकता है:Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { string name = user.DisplayName; string email = user.Email; System.Uri photo_url = user.PhotoUrl; // The user's Id, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, if you // have one; use User.TokenAsync() instead. string uid = user.UserId; }
Firebase Realtime Database और Cloud Storage सुरक्षा नियमों में, साइन इन किए हुए उपयोगकर्ता का यूनीक यूज़र आईडी,
authवैरिएबल से पाया जा सकता है. साथ ही, इसका इस्तेमाल करके यह कंट्रोल किया जा सकता है कि उपयोगकर्ता कौनसा डेटा ऐक्सेस कर सकता है.
पुष्टि करने वाली सेवा देने वाली कंपनी के क्रेडेंशियल को किसी मौजूदा उपयोगकर्ता खाते से लिंक करके, उपयोगकर्ताओं को पुष्टि करने वाली सेवा देने वाली कई कंपनियों का इस्तेमाल करके आपके ऐप्लिकेशन में साइन इन करने की अनुमति दी जा सकती है.
किसी उपयोगकर्ता को साइन आउट करने के लिए,
SignOut() को कॉल करें:
auth.SignOut();