You can use Firebase Authentication to allow users to sign in to your app using one or more sign-in methods, including email address and password sign-in, and federated identity providers such as Google Sign-in and Facebook Login. This tutorial gets you started with Firebase Authentication by showing you how to add email address and password sign-in to your app.
Connect your app to Firebase
- Install the Firebase SDK.
- In the Firebase console, add your app to your Firebase project.
Add Firebase Authentication to your Xcode project
First, ensure the following dependency is in your project's Podfile
:
pod 'Firebase/Auth'
Then, run pod install
and open the created .xcworkspace
file.
Initialize the Firebase SDK
In your app delegate, first import the Firebase SDK:
Then, in the application:didFinishLaunchingWithOptions:
method, initialize the FirebaseApp
object:
Listen for authentication state
For each of your app's views that need information about the signed-in user, attach a listener to the FIRAuth
object. This listener gets called whenever the user's sign-in state changes.
Attach the listener in the view controller's viewWillAppear
method:
self.handle = [[FIRAuth auth]
addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
// ...
}];
And detach the listener in the view controller's viewWillDisappear
method:
Sign up new users
Create a form that allows new users to register with your app using their email address and a password. When a user completes the form, validate the email address and password provided by the user, then pass them to the createUser
method:
[[FIRAuth auth] createUserWithEmail:email
password:password
completion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
// ...
}];
Sign in existing users
Create a form that allows existing users to sign in using their email address and password. When a user completes the form, call the signIn
method:
[[FIRAuth auth] signInWithEmail:_emailField.text
password:_passwordField.text
completion:^(FIRUser *user, NSError *error) {
// ...
}];
Get user information
After a user signs in successfully, you can get information about the user. For example, in your authentication state listener:
if (user) {
// 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 getTokenWithCompletion:completion: instead.
NSString *uid = user.uid;
NSString *email = user.email;
NSURL *photoURL = user.photoURL;
// ...
}
Next steps
Learn how to add support for other identity providers and anonymous guest accounts: