Bird
Raised Fist0
Firebasecloud~10 mins

GitHub sign-in in Firebase - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to initialize GitHub sign-in provider.

Firebase
const provider = new firebase.auth.[1]();
Drag options to blanks, or click blank then click option'
AGitHubAuthProvider
BFacebookAuthProvider
CGoogleAuthProvider
DTwitterAuthProvider
Attempts:
3 left
💡 Hint
Common Mistakes
Using GoogleAuthProvider instead of GitHubAuthProvider
Misspelling the provider name
2fill in blank
medium

Complete the code to sign in with a popup using the GitHub provider.

Firebase
firebase.auth().signInWith[1](provider).then(result => {
  // handle result
});
Drag options to blanks, or click blank then click option'
AEmailAndPassword
BRedirect
CPopup
DCredential
Attempts:
3 left
💡 Hint
Common Mistakes
Using signInWithRedirect instead of signInWithPopup
Using incorrect method names
3fill in blank
hard

Fix the error in the code to get the GitHub access token from the sign-in result.

Firebase
const credential = [1].credentialFromResult(result);
const token = credential.accessToken;
Drag options to blanks, or click blank then click option'
Afirebase.auth.GitHubAuthProvider
Bfirebase
Cfirebase.auth
Dauth
Attempts:
3 left
💡 Hint
Common Mistakes
Calling credentialFromResult on result.auth
Using incorrect namespaces
4fill in blank
hard

Fill both blanks to request additional GitHub scopes and handle sign-in errors.

Firebase
provider.[1]('repo');
firebase.auth().signInWithPopup(provider).catch(error => {
  const errorCode = error.[2];
  // handle error
});
Drag options to blanks, or click blank then click option'
AaddScope
Bcode
Cmessage
DerrorCode
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'errorCode' or 'message' instead of 'code'
Using 'addScopes' instead of 'addScope'
5fill in blank
hard

Fill all three blanks to create a user object from the GitHub sign-in result.

Firebase
const user = {
  id: result.user.[1],
  name: result.user.[2],
  email: result.user.[3]
};
Drag options to blanks, or click blank then click option'
Auid
BdisplayName
Cemail
DphotoURL
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'id' instead of 'uid'
Using 'name' instead of 'displayName'

Practice

(1/5)
1. What is the main purpose of using GithubAuthProvider in Firebase authentication?
easy
A. To send emails to users
B. To store user data in Firebase database
C. To allow users to sign in using their GitHub accounts
D. To create a new GitHub repository

Solution

  1. Step 1: Understand the role of GithubAuthProvider

    GithubAuthProvider is a Firebase class that helps connect Firebase authentication with GitHub accounts.
  2. Step 2: Identify its main use

    It is used to let users sign in to your app using their GitHub login credentials.
  3. Final Answer:

    To allow users to sign in using their GitHub accounts -> Option C
  4. Quick Check:

    GithubAuthProvider = GitHub sign-in [OK]
Hint: GithubAuthProvider is for GitHub login only [OK]
Common Mistakes:
  • Confusing authentication with database storage
  • Thinking it sends emails
  • Assuming it manages GitHub repositories
2. Which of the following is the correct way to create a GitHub auth provider instance in Firebase JavaScript SDK?
easy
A. const provider = new GitHubAuth();
B. const provider = new GitAuthProvider();
C. const provider = new GithubProvider();
D. const provider = new GithubAuthProvider();

Solution

  1. Step 1: Recall the exact class name

    The Firebase SDK uses the class named GithubAuthProvider to create a GitHub auth provider.
  2. Step 2: Match the syntax

    The correct syntax to create an instance is new GithubAuthProvider().
  3. Final Answer:

    const provider = new GithubAuthProvider(); -> Option D
  4. Quick Check:

    Correct class name and syntax = const provider = new GithubAuthProvider(); [OK]
Hint: Class name is exactly GithubAuthProvider with capital G and A [OK]
Common Mistakes:
  • Misspelling the class name
  • Using incorrect capitalization
  • Using incomplete class names
3. What will happen when the following Firebase code runs successfully?
const provider = new GithubAuthProvider();
const result = await signInWithPopup(auth, provider);
console.log(result.user.email);
medium
A. It throws an error because signInWithPopup is not async
B. It logs the signed-in user's GitHub email address
C. It logs the user's GitHub password
D. It logs undefined because result has no user

Solution

  1. Step 1: Understand signInWithPopup behavior

    This function opens a popup for GitHub sign-in and returns a user credential object on success.
  2. Step 2: Access user email from result

    The result.user.email contains the authenticated user's email from GitHub.
  3. Final Answer:

    It logs the signed-in user's GitHub email address -> Option B
  4. Quick Check:

    signInWithPopup returns user info including email [OK]
Hint: signInWithPopup returns user info including email [OK]
Common Mistakes:
  • Thinking password is accessible
  • Assuming signInWithPopup is synchronous
  • Expecting result.user to be undefined
4. You wrote this code but get an error: signInWithPopup(auth, provider) is not a function. What is the most likely cause?
medium
A. You forgot to import signInWithPopup from Firebase auth module
B. You did not create a GitHub account
C. You used signInWithRedirect instead of signInWithPopup
D. You did not enable GitHub sign-in in Firebase console

Solution

  1. Step 1: Analyze the error message

    The error says signInWithPopup is not a function, meaning it is not recognized in the code.
  2. Step 2: Check imports

    This usually happens if signInWithPopup was not imported from Firebase auth module properly.
  3. Final Answer:

    You forgot to import signInWithPopup from Firebase auth module -> Option A
  4. Quick Check:

    Missing import causes function not found error [OK]
Hint: Always import functions you use from Firebase SDK [OK]
Common Mistakes:
  • Assuming GitHub account absence causes this error
  • Confusing signInWithPopup with signInWithRedirect
  • Ignoring Firebase console settings
5. You want to add GitHub sign-in to your Firebase app. Which steps must you complete before calling signInWithPopup(auth, provider)? Select the best sequence.
hard
A. Register OAuth app on GitHub, enable GitHub sign-in in Firebase console, create GithubAuthProvider instance
B. Create GithubAuthProvider instance, enable GitHub sign-in in Firebase console, register OAuth app on GitHub
C. Register OAuth app on GitHub, create GithubAuthProvider instance, enable GitHub sign-in in Firebase console
D. Enable GitHub sign-in in Firebase console, create GithubAuthProvider instance, register OAuth app on GitHub

Solution

  1. Step 1: Register OAuth app on GitHub

    You must register your app on GitHub to get client ID and secret for authentication.
  2. Step 2: Enable GitHub sign-in in Firebase console

    This step activates GitHub as a sign-in provider in your Firebase project.
  3. Step 3: Create GithubAuthProvider instance in your code

    After setup, create the provider instance to use in signInWithPopup.
  4. Final Answer:

    Register OAuth app on GitHub, enable GitHub sign-in in Firebase console, create GithubAuthProvider instance -> Option A
  5. Quick Check:

    Setup order matters: GitHub app, Firebase console, then code [OK]
Hint: Register on GitHub, enable in Firebase, then code [OK]
Common Mistakes:
  • Skipping enabling GitHub sign-in in Firebase
  • Not registering OAuth app on GitHub
  • Creating provider before setup steps
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard