What is Firebase Authentication used for in mobile apps?
Firebase Authentication helps apps sign in users securely using email/password, phone numbers, or social accounts like Google and Facebook.
Click to reveal answer
beginner
How do you sign in a user with email and password using Firebase in Swift?
Use Auth.auth().signIn(withEmail:password:completion:) method and handle the result in a completion block to check success or error.
Click to reveal answer
intermediate
What is the purpose of the completion handler in Firebase sign-in methods?
It tells you if the sign-in succeeded or failed and provides user info or error details to handle next steps.
Click to reveal answer
beginner
How can you check if a user is already signed in when your app starts?
Check if Auth.auth().currentUser is not nil. If it has a value, a user is signed in.
Click to reveal answer
intermediate
Why is it important to handle errors during Firebase Authentication?
Handling errors helps show clear messages to users, like wrong password or network issues, improving user experience.
Click to reveal answer
Which Firebase method signs in a user with email and password in Swift?
AAuth.loginUser(email:password:)
BAuth.signInUser(email:password:)
CFirebase.signIn(email:password:)
DAuth.auth().signIn(withEmail:password:)
✗ Incorrect
The correct method is Auth.auth().signIn(withEmail:password:) to sign in users with email and password.
How do you check if a user is currently signed in with Firebase?
AAuth.auth().currentUser != nil
BAuth.isUserSignedIn()
CFirebase.userExists()
DAuth.user != nil
✗ Incorrect
Auth.auth().currentUser returns the current user or nil if no user is signed in.
What should you do if Firebase sign-in returns an error?
AIgnore it and continue
BRestart the app automatically
CShow an error message to the user
DDelete the user account
✗ Incorrect
Showing an error message helps users understand what went wrong and how to fix it.
Which of these is NOT a sign-in method supported by Firebase Authentication?
AFingerprint scan without setup
BPhone number
CSocial media accounts
DEmail and password
✗ Incorrect
Fingerprint scan requires device-level setup and is not directly a Firebase sign-in method.
What does the completion handler in Firebase sign-in methods provide?
AThe user's password
BUser info or error after sign-in attempt
CThe app's version number
DThe device's location
✗ Incorrect
The completion handler returns user info if sign-in succeeds or an error if it fails.
Explain how to sign in a user with email and password using Firebase Authentication in Swift.
Think about the method call and what you do after it completes.
You got /4 concepts.
Describe how your app can remember if a user is already signed in when it starts.
Firebase keeps user info between app launches.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of Firebase Authentication in an iOS app?
easy
A. To send push notifications to users
B. To store large files in the cloud
C. To design the app's user interface
D. To let users sign up and log in easily
Solution
Step 1: Understand Firebase Authentication's role
Firebase Authentication helps manage user sign-up and sign-in processes.
Step 2: Compare options with this role
Only To let users sign up and log in easily matches this purpose; others relate to different Firebase features or app functions.
Final Answer:
To let users sign up and log in easily -> Option D
Quick Check:
Firebase Authentication = User sign-in [OK]
Hint: Firebase Auth is for user login/signup only [OK]
Common Mistakes:
Confusing Authentication with storage or UI design
Thinking it handles notifications
Assuming it manages app layout
2. Which Swift code snippet correctly creates a new user with Firebase Authentication?
easy
A. Auth.signIn(withEmail: email, password: password)
B. Auth.auth().createUser(withEmail: email, password: password) { result, error in }
C. FirebaseAuth.createUser(email, password)
D. Auth.createUser(email: email, password: password)
Solution
Step 1: Recall correct Firebase method for user creation
The method is Auth.auth().createUser(withEmail:password:completion:).
Step 2: Check each option's syntax
Only Auth.auth().createUser(withEmail: email, password: password) { result, error in } uses the correct method and parameters; others are invalid or for sign-in.
Final Answer:
Auth.auth().createUser(withEmail: email, password: password) { result, error in } -> Option B
Quick Check:
Create user method = Auth.auth().createUser(withEmail: email, password: password) { result, error in } [OK]
Hint: Use Auth.auth().createUser for new users [OK]
Common Mistakes:
Using signIn method instead of createUser
Wrong method call without Auth.auth()
Missing completion handler closure
3. What will be printed if the following Swift code runs and the user enters a wrong password?
Auth.auth().signIn(withEmail: email, password: wrongPassword) { authResult, error in
if let error = error {
print("Login failed: \(error.localizedDescription)")
} else {
print("Login successful")
}
}
medium
A. Login failed: The password is invalid or the user does not have a password.
If sign-in fails, error is non-nil and prints the error message.
Step 2: Analyze wrong password case
Wrong password triggers error with message about invalid password.
Final Answer:
Login failed: The password is invalid or the user does not have a password. -> Option A
Quick Check:
Error message prints on wrong password [OK]
Hint: Errors print message; success prints success [OK]
Common Mistakes:
Assuming success prints even on error
Ignoring error optional unwrapping
Expecting no output on failure
4. Identify the error in this Swift Firebase sign-in code:
Auth.auth().signIn(withEmail: email, password: password) { authResult, error in
if error != nil {
print("Error signing in")
}
print("User signed in")
}
medium
A. Missing else block causes "User signed in" to print even on error
B. Incorrect method name for signIn
C. No completion handler provided
D. Password parameter is missing
Solution
Step 1: Review control flow in completion handler
Code prints "User signed in" regardless of error presence.
Step 2: Identify missing else block
Without else, success message prints even if sign-in failed.
Final Answer:
Missing else block causes "User signed in" to print even on error -> Option A
Quick Check:
Print success only if no error [OK]
Hint: Use else to separate success from error prints [OK]
Common Mistakes:
Printing success message unconditionally
Not checking error properly
Confusing method names
5. You want to create a Swift function that registers a user and shows an alert with success or error message. Which approach correctly handles this using Firebase Authentication?
hard
A. Call createUser, then immediately show success alert without waiting for completion
B. Call signIn instead of createUser for registration
C. Call createUser with completion handler, show alert inside handler based on error or success
D. Use createUser without email or password parameters
Solution
Step 1: Understand asynchronous nature of createUser
createUser runs asynchronously; alerts must be shown after completion.
Call createUser, then immediately show success alert without waiting for completion shows alert too early; C uses wrong method; D misses required parameters.
Final Answer:
Call createUser with completion handler, show alert inside handler based on error or success -> Option C
Quick Check:
Show alert after createUser completes [OK]
Hint: Show alerts only inside completion handlers [OK]
Common Mistakes:
Showing alerts before async call finishes
Using signIn for registration
Omitting required parameters
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.