Bird
Raised Fist0
Firebasecloud~20 mins

Cloud Functions setup in Firebase - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Cloud Functions Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ service_behavior
intermediate
2:00remaining
Cloud Function Trigger Behavior
You deploy a Firebase Cloud Function triggered by Firestore document creation in the 'orders' collection. What happens when a new document is added to 'orders'?
AThe function runs continuously as long as there is at least one document in 'orders'.
BThe function runs once for every update to any document in 'orders'.
CThe function runs only once when the first document is added to 'orders'.
DThe function runs once for each new document added to 'orders'.
Attempts:
2 left
💡 Hint
Think about what triggers a Firestore onCreate function.
❓ Configuration
intermediate
2:00remaining
Correct Firebase Function Initialization
Which code snippet correctly initializes a Firebase Cloud Function to respond to HTTP requests?
A
const functions = require('firebase-functions');
exports.myFunc = functions.https.onRequest((req, res) => { res.send('Hello'); });
B
const functions = require('firebase-functions');
exports.myFunc = functions.firestore.document('path').onWrite((change, context) => { /* ... */ });
C
const functions = require('firebase-functions');
exports.myFunc = functions.database.ref('path').onWrite((change, context) => { /* ... */ });
D
const functions = require('firebase-functions');
exports.myFunc = functions.storage.object().onFinalize((object) => { /* ... */ });
Attempts:
2 left
💡 Hint
Check which Firebase function type supports HTTP triggers.
❓ Architecture
advanced
3:00remaining
Designing Scalable Cloud Functions
You want to design a Firebase Cloud Function that processes image uploads to Cloud Storage and scales efficiently under heavy load. Which approach is best?
AUse a Cloud Function triggered on image upload that places a message in a Pub/Sub queue for asynchronous processing.
BUse a single Cloud Function triggered on every image upload that processes the image synchronously.
CUse a Cloud Function triggered on HTTP requests to process images uploaded manually by users.
DUse a Cloud Function triggered on Firestore writes to track image uploads and process images in the function.
Attempts:
2 left
💡 Hint
Think about decoupling processing from upload to handle spikes.
❓ security
advanced
3:00remaining
Securing Firebase Cloud Functions
Which practice best secures a Firebase Cloud Function that handles sensitive user data via HTTP requests?
AUse HTTP Basic Authentication with hardcoded credentials in the function.
BAllow all requests and rely on Firestore security rules to protect data.
CRequire Firebase Authentication tokens and verify them inside the function before processing.
DMake the function public and encrypt data only after processing.
Attempts:
2 left
💡 Hint
Think about verifying the identity of the caller before processing sensitive data.
✅ Best Practice
expert
3:00remaining
Optimizing Cold Start Times in Cloud Functions
You notice your Firebase Cloud Functions have high cold start latency. Which option is the best way to reduce cold start times?
AIncrease the memory allocation to the maximum allowed for all functions.
BKeep function code minimal and avoid importing large libraries unless needed.
CDeploy all functions in a single file to reduce deployment size.
DUse synchronous blocking code to ensure all initialization completes before handling requests.
Attempts:
2 left
💡 Hint
Think about what affects the time it takes to start a function instance.

Practice

(1/5)
1. What is the first command you run to start setting up Cloud Functions in a Firebase project?
easy
A. firebase init functions
B. firebase deploy --only functions
C. firebase start functions
D. firebase create functions

Solution

  1. Step 1: Understand Firebase setup commands

    The command firebase init functions initializes Cloud Functions in your project by creating necessary files and folders.
  2. Step 2: Differentiate from deploy command

    firebase deploy --only functions is used after setup to upload your functions to Firebase, not to start setup.
  3. Final Answer:

    firebase init functions -> Option A
  4. Quick Check:

    Setup starts with firebase init functions [OK]
Hint: Setup always begins with 'firebase init functions' command [OK]
Common Mistakes:
  • Confusing deploy command as setup
  • Using non-existent commands like 'firebase start functions'
  • Skipping initialization step
2. Which of the following is the correct way to deploy only Cloud Functions after writing your code?
easy
A. firebase deploy --only database
B. firebase deploy --only hosting
C. firebase deploy --only functions
D. firebase deploy --only storage

Solution

  1. Step 1: Identify deployment targets

    Firebase allows deploying specific parts like hosting, functions, database, or storage using the --only flag.
  2. Step 2: Match the correct target for Cloud Functions

    To deploy Cloud Functions only, use firebase deploy --only functions.
  3. Final Answer:

    firebase deploy --only functions -> Option C
  4. Quick Check:

    Deploy functions with --only functions [OK]
Hint: Use '--only functions' to deploy just Cloud Functions [OK]
Common Mistakes:
  • Using wrong target like hosting or database
  • Omitting '--only' and deploying everything
  • Typing incorrect command syntax
3. Given this Cloud Function code snippet, what will happen when an HTTP request is made to it?
const functions = require('firebase-functions');
exports.helloWorld = functions.https.onRequest((request, response) => {
  response.send('Hello from Firebase!');
});
medium
A. The function does nothing and times out.
B. The function returns 'Hello from Firebase!' as the HTTP response.
C. The function throws an error because of missing return statement.
D. The function returns a JSON object with message 'Hello from Firebase!'.

Solution

  1. Step 1: Understand the function trigger type

    This function uses functions.https.onRequest, which handles HTTP requests and sends responses.
  2. Step 2: Analyze the response sent

    The function calls response.send('Hello from Firebase!'), which sends a plain text response with that message.
  3. Final Answer:

    The function returns 'Hello from Firebase!' as the HTTP response. -> Option B
  4. Quick Check:

    HTTP function sends plain text response [OK]
Hint: HTTP functions respond with response.send() text [OK]
Common Mistakes:
  • Thinking response.send requires return
  • Expecting JSON without using response.json()
  • Assuming function times out without response
4. You wrote this Cloud Function but get an error when deploying:
exports.myFunction = functions.https.onRequest((req, res) => {
  res.send('Hi');
}
What is the problem?
medium
A. Missing closing parenthesis and semicolon after the function definition.
B. Using 'req' and 'res' instead of 'request' and 'response'.
C. The function name 'myFunction' is invalid.
D. Cloud Functions cannot handle HTTP requests.

Solution

  1. Step 1: Check function syntax carefully

    The code snippet is missing a closing parenthesis ')' and semicolon ';' after the arrow function.
  2. Step 2: Validate other parts

    Using 'req' and 'res' is valid parameter naming. Function name is valid. Cloud Functions support HTTP triggers.
  3. Final Answer:

    Missing closing parenthesis and semicolon after the function definition. -> Option A
  4. Quick Check:

    Syntax errors cause deployment failure [OK]
Hint: Check for missing brackets and semicolons in function code [OK]
Common Mistakes:
  • Ignoring syntax errors like missing parentheses
  • Thinking parameter names must be 'request' and 'response'
  • Assuming Cloud Functions don't support HTTP
5. You want to create a Cloud Function that triggers when a new user is added to Firebase Authentication and logs their email. Which setup is correct?
hard
A.
exports.logNewUser = functions.database.ref('/users/{userId}').onCreate((snapshot) => {
  console.log('New user:', snapshot.val().email);
});
B.
exports.logNewUser = functions.storage.object().onFinalize((object) => {
  console.log('New user:', object.email);
});
C.
exports.logNewUser = functions.https.onRequest((req, res) => {
  console.log('New user:', req.body.email);
  res.send('Logged');
});
D.
exports.logNewUser = functions.auth.user().onCreate((user) => {
  console.log('New user:', user.email);
});

Solution

  1. Step 1: Identify the correct trigger for new Firebase Authentication users

    The trigger functions.auth.user().onCreate runs when a new user is created in Firebase Authentication.
  2. Step 2: Confirm the logging of user email

    The callback receives a user object with an email property, which can be logged directly.
  3. Step 3: Differentiate from other triggers

    Database triggers listen to database changes, HTTP triggers respond to requests, and storage triggers respond to file changes, so they are incorrect here.
  4. Final Answer:

    Use auth user onCreate trigger to log new user email. -> Option D
  5. Quick Check:

    Auth user onCreate triggers new user events [OK]
Hint: Use auth.user().onCreate for new Firebase Authentication users [OK]
Common Mistakes:
  • Using database triggers for auth events
  • Using HTTP triggers to detect user creation
  • Confusing storage triggers with auth triggers
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