Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

Android पर फेसबुक लॉगिन का उपयोग करके प्रमाणित करें

आप अपने उपयोगकर्ताओं को अपने ऐप में फेसबुक लॉग इन को एकीकृत करके अपने फेसबुक खातों का उपयोग करके फायरबेस के साथ प्रमाणित कर सकते हैं।

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

  1. यदि आप पहले से नहीं है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें
  2. अपने प्रोजेक्ट-लेवल build.gradle फ़ाइल में, अपने buildscript और allprojects दोनों वर्गों में Google के buildscript रिपॉजिटरी को शामिल करना सुनिश्चित करें।
  3. अपने मॉड्यूल (ऐप-स्तरीय) ग्रेड फ़ाइल (आमतौर पर app/build.gradle ) के लिए app/build.gradle प्रमाणीकरण एंड्रॉइड लाइब्रेरी के लिए निर्भरता जोड़ें:

    implementation 'com.google.firebase:firebase-auth:19.4.0'
    
  4. डेवलपर्स साइट के लिए फेसबुक पर, अपने ऐप के लिए ऐप आईडी और एक ऐप सीक्रेट प्राप्त करें।
  5. फेसबुक लॉगिन सक्षम करें:
    1. में Firebase कंसोल , प्राधिकरण अनुभाग खोलें।
    2. साइन इन विधि टैब पर, फेसबुक साइन-इन विधि को सक्षम करें और आपको फेसबुक से प्राप्त ऐप आईडी और ऐप सीक्रेट निर्दिष्ट करें।
    3. फिर, सुनिश्चित करें कि आपका OAuth रीडायरेक्ट URI (जैसे my-app-12345.firebaseapp.com/__/auth/handler ) उत्पाद में डेवलपर्स साइट के लिए फेसबुक पर आपके Facebook ऐप के सेटिंग पृष्ठ में आपके OAuth रीडायरेक्ट URI में से एक के रूप में सूचीबद्ध है। सेटिंग्स> फेसबुक लॉगिन कॉन्फ़िगरेशन।

फायरबेस के साथ प्रमाणीकरण

  1. डेवलपर के दस्तावेज़ का पालन ​​करके अपने ऐप में फेसबुक लॉगिन को एकीकृत करें। जब आप LoginButton या LoginManager ऑब्जेक्ट को कॉन्फ़िगर करते हैं, तो public_profile और email अनुमतियों का अनुरोध करें। यदि आपने एक LoginButton का उपयोग करके फेसबुक लॉगिन को एकीकृत किया है, तो आपकी साइन-इन गतिविधि का कोड निम्न के समान है:

    जावा

    // Initialize Facebook Login button
    mCallbackManager = CallbackManager.Factory.create();
    LoginButton loginButton = mBinding.buttonFacebookLogin;
    loginButton.setReadPermissions("email", "public_profile");
    loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Log.d(TAG, "facebook:onSuccess:" + loginResult);
            handleFacebookAccessToken(loginResult.getAccessToken());
        }
    
        @Override
        public void onCancel() {
            Log.d(TAG, "facebook:onCancel");
            // ...
        }
    
        @Override
        public void onError(FacebookException error) {
            Log.d(TAG, "facebook:onError", error);
            // ...
        }
    });
    // ...
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    
        // Pass the activity result back to the Facebook SDK
        mCallbackManager.onActivityResult(requestCode, resultCode, data);
    }

    Kotlin + KTX

    // Initialize Facebook Login button
    callbackManager = CallbackManager.Factory.create()
    
    binding.buttonFacebookLogin.setReadPermissions("email", "public_profile")
    binding.buttonFacebookLogin.registerCallback(callbackManager, object : FacebookCallback<LoginResult> {
        override fun onSuccess(loginResult: LoginResult) {
            Log.d(TAG, "facebook:onSuccess:$loginResult")
            handleFacebookAccessToken(loginResult.accessToken)
        }
    
        override fun onCancel() {
            Log.d(TAG, "facebook:onCancel")
            // ...
        }
    
        override fun onError(error: FacebookException) {
            Log.d(TAG, "facebook:onError", error)
            // ...
        }
    })
    // ...
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
    
        // Pass the activity result back to the Facebook SDK
        callbackManager.onActivityResult(requestCode, resultCode, data)
    }
  2. अपने साइन-इन गतिविधि की onCreate विधि में, FirebaseAuth ऑब्जेक्ट का साझा उदाहरण प्राप्त करें:

    जावा

    private FirebaseAuth mAuth;
    // ...
    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();

    Kotlin + KTX

    private lateinit var auth: FirebaseAuth
    // ...
    // Initialize Firebase Auth
    auth = Firebase.auth
  3. अपनी गतिविधि को प्रारंभ करते समय, यह देखने के लिए जांचें कि क्या उपयोगकर्ता वर्तमान में साइन इन है:

    जावा

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }

    Kotlin + KTX

    public override fun onStart() {
        super.onStart()
        // Check if user is signed in (non-null) and update UI accordingly.
        val currentUser = auth.currentUser
        updateUI(currentUser)
    }
  4. सफलतापूर्वक में संकेत एक उपयोगकर्ता, में बाद LoginButton के onSuccess कॉलबैक विधि, एक पहुँच के लिए टोकन प्राप्त साइन-इन उपयोगकर्ता, एक Firebase क्रेडेंशियल के लिए विदेशी मुद्रा, और Firebase Firebase क्रेडेंशियल का उपयोग कर के साथ प्रमाणित:

    जावा

    private void handleFacebookAccessToken(AccessToken token) {
        Log.d(TAG, "handleFacebookAccessToken:" + token);
    
        AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
        mAuth.signInWithCredential(credential)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {
                            // Sign in success, update UI with the signed-in user's information
                            Log.d(TAG, "signInWithCredential:success");
                            FirebaseUser user = mAuth.getCurrentUser();
                            updateUI(user);
                        } else {
                            // If sign in fails, display a message to the user.
                            Log.w(TAG, "signInWithCredential:failure", task.getException());
                            Toast.makeText(FacebookLoginActivity.this, "Authentication failed.",
                                    Toast.LENGTH_SHORT).show();
                            updateUI(null);
                        }
    
                        // ...
                    }
                });
    }

    Kotlin + KTX

    private fun handleFacebookAccessToken(token: AccessToken) {
        Log.d(TAG, "handleFacebookAccessToken:$token")
    
        val credential = FacebookAuthProvider.getCredential(token.token)
        auth.signInWithCredential(credential)
                .addOnCompleteListener(this) { task ->
                    if (task.isSuccessful) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "signInWithCredential:success")
                        val user = auth.currentUser
                        updateUI(user)
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "signInWithCredential:failure", task.exception)
                        Toast.makeText(baseContext, "Authentication failed.",
                                Toast.LENGTH_SHORT).show()
                        updateUI(null)
                    }
    
                    // ...
                }
    }
    यदि signInWithCredential करने में कॉल सफल होती है, तो आप उपयोगकर्ता के खाते का डेटा प्राप्त करने के लिए getCurrentUser विधि का उपयोग कर सकते हैं।

अगला कदम

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

  • अपने ऐप्स में, आप उपयोगकर्ता की मूल प्रोफ़ाइल जानकारी FirebaseUser ऑब्जेक्ट से प्राप्त कर सकते हैं। उपयोगकर्ता प्रबंधित करें देखें।

  • अपने फायरबेस रियलटाइम डेटाबेस और क्लाउड स्टोरेज सिक्योरिटी रूल्स में , आप साइन-इन किए गए उपयोगकर्ता की यूनिक यूजर आईडी को auth वैरिएबल से प्राप्त कर सकते हैं, और इसका उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि उपयोगकर्ता किस डेटा तक पहुंच सकता है।

आप उपयोगकर्ताओं को किसी मौजूदा उपयोगकर्ता खाते में कई प्रदाता प्रदाता को प्रमाणित करके अपने ऐप में साइन इन करने की अनुमति दे सकते हैं।

एक उपयोगकर्ता प्रस्थान करने के लिए फोन signOut :

जावा

FirebaseAuth.getInstance().signOut();

Kotlin + KTX

Firebase.auth.signOut()