You can let your users authenticate with Firebase using their Facebook accounts by integrating Facebook Login into your app.
Before you begin
-
If you haven't already, add Firebase to your Android project .
- On the Facebook for Developers site, get the App ID and an App Secret for your app.
- Enable Facebook Login:
- In the Firebase console , open the Auth section.
- On the Sign in method tab, enable the Facebook sign-in method and specify the App ID and App Secret you got from Facebook.
- Then, make sure your OAuth redirect URI
(e.g.
my-app-12345.firebaseapp.com/__/auth/handler
) is listed as one of your OAuth redirect URIs in your Facebook app's settings page on the Facebook for Developers site in the Product Settings > Facebook Login config.
-
In your module (app-level) Gradle file (usually
<project>/<app-module>/build.gradle.kts
or<project>/<app-module>/build.gradle
), add the dependency for the Firebase Authentication library for Android. We recommend using the Firebase Android BoM to control library versioning.dependencies { // Import the BoM for the Firebase platform implementation ( platform ( "com.google.firebase:firebase-bom:34.2.0" )) // Add the dependency for the Firebase Authentication library // When using the BoM , you don't specify versions in Firebase library dependencies implementation ( "com.google.firebase:firebase-auth" ) }
By using the Firebase Android BoM , your app will always use compatible versions of Firebase Android libraries.
(Alternative) Add Firebase library dependencies without using the BoM
If you choose not to use the Firebase BoM , you must specify each Firebase library version in its dependency line.
Note that if you use multiple Firebase libraries in your app, we strongly recommend using the BoM to manage library versions, which ensures that all versions are compatible.
dependencies { // Add the dependency for the Firebase Authentication library // When NOT using the BoM , you must specify versions in Firebase library dependencies implementation ( "com.google.firebase:firebase-auth:24.0.1" ) }
Authenticate with Firebase
- Integrate Facebook Login into your app by following the developer's documentation
. When you configure the
LoginButton
orLoginManager
object, request thepublic_profile
andemail
permissions. If you integrated Facebook Login using aLoginButton
, your sign-in activity has code similar to the following:Kotlin
// Initialize Facebook Login button callbackManager = CallbackManager . Factory . create () buttonFacebookLogin . setReadPermissions ( "email" , "public_profile" ) 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 ) }
Java
// Initialize Facebook Login button mCallbackManager = CallbackManager . Factory . create (); LoginButton loginButton = findViewById ( R . id . button_sign_in ); 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 ); }
- In your sign-in activity's
onCreate
method, get the shared instance of theFirebaseAuth
object:Kotlin
private lateinit var auth : FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase . auth . kt