How to Trigger Firebase Function on HTTP Request
To trigger a function on an HTTP request in Firebase, use
functions.https.onRequest to define the function. This creates a web endpoint that runs your code when accessed via HTTP.Syntax
The syntax to create an HTTP-triggered Firebase function uses functions.https.onRequest. It takes a callback with request and response parameters to handle the HTTP request and send a response.
- functions.https.onRequest: Defines the function to run on HTTP request.
- request: Object containing details of the HTTP request.
- response: Object used to send back data to the client.
javascript
const functions = require('firebase-functions'); exports.myHttpFunction = functions.https.onRequest((request, response) => { // Your code here response.send('Hello from Firebase!'); });
Example
This example shows a simple Firebase function triggered by an HTTP request. When you visit the function URL, it responds with a greeting message.
javascript
const functions = require('firebase-functions'); exports.greetUser = functions.https.onRequest((request, response) => { const name = request.query.name || 'Friend'; response.send(`Hello, ${name}! Welcome to Firebase Functions.`); });
Output
If you visit the URL with ?name=Alice, the output will be: Hello, Alice! Welcome to Firebase Functions.
Common Pitfalls
Common mistakes when triggering Firebase functions on HTTP requests include:
- Not exporting the function properly, so Firebase can't find it.
- Forgetting to send a response, causing the request to hang.
- Using
functions.https.onCallinstead ofonRequestfor HTTP triggers. - Not deploying the function after changes.
javascript
/* Wrong: Missing response.send() causes timeout */ exports.badFunction = functions.https.onRequest((req, res) => { // No response sent }); /* Right: Always send a response */ exports.goodFunction = functions.https.onRequest((req, res) => { res.send('Response sent properly'); });
Quick Reference
| Concept | Description |
|---|---|
| functions.https.onRequest | Defines an HTTP-triggered Firebase function |
| request | Contains HTTP request data like query, body, headers |
| response | Used to send HTTP response back to client |
| response.send() | Sends a response and ends the function execution |
| Deploy command | Use 'firebase deploy --only functions' to update |
Key Takeaways
Use functions.https.onRequest to create HTTP-triggered Firebase functions.
Always send a response using response.send() to avoid hanging requests.
Export your function properly so Firebase can deploy and run it.
Test your function URL with query parameters to customize responses.
Deploy your functions after changes using the Firebase CLI.