How to Test Firebase Webhooks
Firebase doesn't have a dedicated webhooks feature, but you can test HTTP triggers, Firestore extension callbacks, and third-party senders targeting your Cloud Functions.
TL;DR: Firebase Cloud Functions expose HTTPS endpoints that act as webhook receivers. Use requex.me to capture what the sender actually sends before you write your function — then use the Firebase Emulator Suite to test your function locally before deploying.
How Firebase Webhooks Work
Firebase doesn't ship a traditional "configure a webhook URL" feature the way Stripe or GitHub do. Instead, Firebase acts as the receiver side via Cloud Function HTTP triggers. Three scenarios are common:
1. Third-party services → Cloud Function HTTP trigger
You deploy a Cloud Function with an HTTPS endpoint and give that URL to Stripe, GitHub, or any webhook sender. The function processes inbound events.
2. Firebase Extensions that send outbound webhooks
Extensions from the Firebase Marketplace (e.g., "Send messages with Twilio", "Trigger email") can POST event data to a URL you configure. Use Requex to capture those outbound payloads.
3. Firestore / Auth triggers acting as webhook dispatchers
You can write a Cloud Function that fires on Firestore document writes or Auth events and POSTs data to an external service — in effect, your Firebase project sends the webhook. Requex lets you verify the shape of what you're sending.
Step 1 — Generate a Requex Endpoint
Open requex.me and copy your unique URL:
https://requex.me/hook/a1b2c3d4-e5f6-7890-abcd-ef1234567890
This URL accepts any HTTP method and responds 200 immediately — exactly what you need to capture payloads without building a function first.
Step 2 — Configure the Sender
The configuration step depends on what is sending the webhook to your Firebase function:
Third-party sender (e.g., Stripe)
In the sender's dashboard, temporarily replace your Cloud Function URL with your Requex URL. Trigger a test event to capture the real payload structure. Then switch back to your actual function URL once you've built the handler.
Firebase Extension outbound webhook
When installing or reconfiguring the extension, set the webhook URL parameter to your Requex URL. Trigger the extension (e.g., write a Firestore document) and inspect the outbound payload in Requex.
Your own outbound Cloud Function
If you're writing a function that POSTs to a downstream service, temporarily point the target URL to Requex. This confirms the shape of your outbound request before the real endpoint is involved.
Step 3 — Trigger a Test Event
For Firestore-triggered functions, write a document to the collection that triggers your function. In the Firebase Console, go to Firestore → your collection → Add document. Your function (or its emulated version) will fire and POST to Requex.
For HTTP-triggered functions that receive webhooks from third parties, trigger the event from the sender's test tool (e.g., Stripe's CLI: stripe trigger payment_intent.created).
Step 4 — Inspect the Payload
In Requex, click the incoming request. A typical Cloud Function outbound POST might look like:
// Example: Firestore-triggered function POSTing to Requex
{
"event": "document.written",
"collection": "orders",
"documentId": "abc123",
"before": null,
"after": {
"userId": "usr_456",
"status": "pending",
"total": 4999,
"createdAt": "2026-04-05T12:00:00Z"
},
"timestamp": "2026-04-05T12:00:01Z"
}Check the Headers tab for any auth tokens your function sets on the outbound request. This is important if the downstream service expects a signature or Bearer token.
Testing Your Cloud Function Locally
The Firebase Emulator Suite lets you run your HTTP-triggered functions locally. Use Requex to capture what the real sender sends, then replay it against your local emulator:
# 1. Start the functions emulator firebase emulators:start --only functions # 2. Copy the real payload from Requex, save as payload.json # 3. Replay it against your local function curl -X POST http://127.0.0.1:5001/your-project/us-central1/yourFunction \ -H "Content-Type: application/json" \ -H "X-GitHub-Event: push" \ -d @payload.json # 4. Check emulator console for function output and errors
This workflow — capture with Requex, replay against local emulator — means you can iterate on your function handler without waiting for a deploy cycle on every change.
Common Issues
| Problem | Cause | Fix |
|---|---|---|
| Function times out processing the webhook | Synchronous processing in the request handler | Return 200 immediately, push work to a Pub/Sub topic or Firestore queue |
| CORS error when testing in browser | Webhook senders don't make browser requests | Use curl or the Firebase CLI to trigger — webhooks are server-to-server calls |
| Cold start delays cause 30s+ response times | Serverless cold start on first invocation | Set minimum instances to 1 for latency-sensitive webhook handlers |
Test Firebase Webhooks Free
Capture real HTTP trigger payloads and inspect every header. No server or signup required.
Open Requex →Related guides
Start Testing Webhooks Now
Generate your unique URL and test webhooks instantly. Free, no signup.
Open Webhook Tester →