How to Set Up Firebase Webhook Notifications with Webhookify

Firebase is Google's comprehensive app development platform, providing authentication, real-time databases, cloud storage, hosting, and crash reporting for millions of mobile and web applications. Every user signup, database change, file upload, and app crash generates events that developers and product teams need to monitor. While Firebase offers its own console and Crashlytics dashboard, these require active monitoring and do not push alerts to your preferred communication channels. Webhookify bridges this gap by transforming Firebase events into instant, AI-summarized notifications delivered to Telegram, Discord, Slack, Email, or your mobile device through lightweight Cloud Functions.
This guide walks you through connecting Firebase events to Webhookify using Cloud Functions. You will be set up in under 15 minutes with minimal code.
Why Monitor Firebase Events with Webhookify?
-
User Signup Tracking: Know immediately when new users register in your app. Webhookify delivers AI-summarized notifications with user details, helping product teams track growth in real time and enabling onboarding workflows to trigger faster.
-
Crash Monitoring: Get instant mobile push notifications when Crashlytics detects a new fatal issue. Instead of discovering crashes hours later in the Firebase console, your engineering team can start investigating within seconds of the first occurrence.
-
Database Change Awareness: Monitor critical Firestore or Realtime Database changes in real time. When an important document is created or updated, receive a notification with the key field values, enabling you to track business-critical data changes without building a custom admin panel.
-
Security Event Alerts: Track authentication events like user deletions, suspicious login patterns, or bulk signups. These events can indicate security issues that require immediate investigation.
-
AI-Powered Summaries: Instead of raw event data, Webhookify uses AI to generate human-readable summaries. A Firestore document creation becomes "New order created: Order #1247 by customer john@example.com for $89.99 (2 items)" rather than a nested JSON document structure.
Prerequisites
- A Firebase project on the Blaze (pay-as-you-go) plan (required for outbound Cloud Function HTTP requests)
- Firebase CLI installed (
npm install -g firebase-tools) - A Webhookify account (sign up free at webhookify.app)
- At least one notification channel configured in Webhookify (Telegram, Discord, Slack, Email, or mobile push)
- Basic familiarity with JavaScript/TypeScript and Cloud Functions
Step-by-Step Setup Guide
Create a Webhookify Endpoint
Log into your Webhookify dashboard at webhookify.app. Click "Create Endpoint" to generate a unique webhook URL:
https://hook.webhookify.app/wh/fb_abc123xyz789
Copy this URL. Name the endpoint descriptively, such as "Firebase - My App Events" or "Firebase - User Auth & Crashes." You can create multiple endpoints to separate different event categories -- one for authentication events, another for Crashlytics, and a third for database changes.
Configure Your Notification Channel
Set up your preferred notification channels in the Webhookify settings before connecting Firebase.
For Telegram: Connect the Webhookify bot and select a chat or group. Development teams often create a dedicated "App Monitoring" group for Firebase events.
For Discord: Authorize the bot and choose a channel like #firebase-alerts or #app-events in your Discord server.
For Slack: Complete the OAuth flow and select a channel. Teams commonly use channels like #firebase, #app-crashes, or #user-signups.
For Email: Add individual or team email addresses. This creates a searchable audit trail of all Firebase events for compliance or analysis.
For Mobile Push: Install the Webhookify app on your phone, sign in, and enable push notifications. This is critical for on-call developers who need to know about crashes and authentication issues immediately.
Create Cloud Functions to Forward Events
Initialize Cloud Functions in your Firebase project if you have not already:
firebase init functions
Select TypeScript or JavaScript. Then create functions that listen for Firebase events and forward them to your Webhookify endpoint. Here are the most common patterns:
Authentication Events (User Created):
import * as functions from "firebase-functions";
import fetch from "node-fetch";
const WEBHOOKIFY_URL = "https://hook.webhookify.app/wh/fb_abc123xyz789";
export const onUserCreated = functions.auth.user().onCreate(async (user) => {
await fetch(WEBHOOKIFY_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
event: "auth.user.created",
uid: user.uid,
email: user.email,
displayName: user.displayName,
provider: user.providerData?.[0]?.providerId,
createdAt: user.metadata.creationTime,
}),
});
});
Firestore Document Created:
export const onOrderCreated = functions.firestore
.document("orders/{orderId}")
.onCreate(async (snapshot, context) => {
const data = snapshot.data();
await fetch(WEBHOOKIFY_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
event: "firestore.document.created",
collection: "orders",
documentId: context.params.orderId,
data: data,
}),
});
});
Crashlytics New Fatal Issue:
export const onNewFatalIssue = functions.crashlytics
.issue()
.onNew(async (issue) => {
await fetch(WEBHOOKIFY_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
event: "crashlytics.newFatalIssue",
issueId: issue.issueId,
issueTitle: issue.issueTitle,
appVersion: issue.appInfo.appVersion,
platform: issue.appInfo.appPlatform,
createTime: issue.createTime,
}),
});
});
Deploy the functions:
firebase deploy --only functions
Select Events to Monitor
Choose which Firebase events matter most to your application. Here are the commonly monitored event types:
Authentication Events:
auth.user.created-- New user registrationauth.user.deleted-- User account deletionauth.user.beforeCreate-- Pre-creation hook for validation (requires Blocking Functions)
Firestore Events:
firestore.document.created-- New document added to a collectionfirestore.document.updated-- Existing document modifiedfirestore.document.deleted-- Document removed from a collection
Crashlytics Events:
crashlytics.newFatalIssue-- First occurrence of a new crashcrashlytics.newNonfatalIssue-- First occurrence of a non-fatal errorcrashlytics.regression-- A previously resolved issue has recurredcrashlytics.velocityAlert-- Crash rate spike detected
Realtime Database Events:
database.ref.onCreate-- New data written to a pathdatabase.ref.onUpdate-- Data updated at a pathdatabase.ref.onDelete-- Data deleted from a path
Cloud Storage Events:
storage.object.finalize-- File uploaded to a bucketstorage.object.delete-- File deleted from a bucket
Create a separate Cloud Function for each event type you want to monitor. You can point all functions to the same Webhookify endpoint or use different endpoints for different event categories.
Test Your Configuration
After deploying your Cloud Functions, test each one:
Testing auth events:
- Create a new user account in your app (or use the Firebase Authentication console to add a test user)
- Check your Webhookify dashboard for the
auth.user.createdevent - Verify the notification arrived on your configured channel
Testing Firestore events:
- Add a document to the monitored collection via the Firebase console or your app
- Check the Webhookify dashboard for the
firestore.document.createdevent - Verify the notification content includes the document data
Testing Crashlytics events:
- Force a test crash in your mobile app using
FirebaseCrashlytics.instance.crash() - Wait for the crash report to be processed (may take a few minutes)
- Check for the Crashlytics event in the Webhookify dashboard
You can also check the Firebase Functions logs for any errors:
firebase functions:log
If events appear in the Webhookify dashboard but notifications are not delivered, check your notification channel configuration in Webhookify settings.
Firebase Events You Can Monitor
| Firebase Event | Description |
|---|---|
| auth.user.created | Triggered when auth user created occurs |
| auth.user.deleted | Triggered when auth user deleted occurs |
| firestore.document.created | Triggered when firestore document created occurs |
| firestore.document.updated | Triggered when firestore document updated occurs |
| firestore.document.deleted | Triggered when firestore document deleted occurs |
| crashlytics.newFatalIssue | Triggered when crashlytics newFatalIssue occurs |
| crashlytics.newNonfatalIssue | Triggered when crashlytics newNonfatalIssue occurs |
| crashlytics.regression | Triggered when crashlytics regression occurs |
| crashlytics.velocityAlert | Triggered when crashlytics velocityAlert occurs |
| database.ref.onCreate | Triggered when database ref onCreate occurs |
| database.ref.onUpdate | Triggered when database ref onUpdate occurs |
| database.ref.onDelete | Triggered when database ref onDelete occurs |
| storage.object.finalize | Triggered when storage object finalize occurs |
| storage.object.delete | Triggered when storage object delete occurs |
Real-World Use Cases
-
User Growth Monitoring: A startup tracks
auth.user.createdevents through a Telegram group shared by the founding team. Every new signup triggers an AI-summarized notification showing the user's email and authentication provider (Google, Apple, email/password). The team celebrates each new user in real time and tracks daily growth without building a custom analytics dashboard. -
Crash Response: A mobile app development team routes
crashlytics.newFatalIssueandcrashlytics.velocityAlertevents to a high-priority Slack channel with mobile push notifications. When a new crash is detected in production, the on-call engineer receives an instant alert with the crash title, affected app version, and platform. This reduced their mean time to acknowledgement from 3 hours to under 5 minutes. -
Order Monitoring: An e-commerce app monitors the
ordersFirestore collection. When a new order document is created, Webhookify sends a notification with the order amount, customer email, and item count. The business owner receives these on their phone with a cash sound enabled in the Webhookify app, creating an audible alert for every sale. -
Security Alerting: A fintech app monitors
auth.user.deletedevents and unusual patterns in authentication data. When user accounts are deleted in bulk or from unexpected regions, the security team receives immediate Discord notifications. This early warning system helps detect potential account compromise or abuse.
Example Notification
Here is what a typical Webhookify notification looks like for a Firebase user creation event:
New Webhook Event Received
Source: Firebase
Event: auth.user.created
Endpoint: Firebase - My App Events
AI Summary:
New user registered in your Firebase app:
Email: alex.rivera@example.com
Display Name: Alex Rivera
Auth Provider: Google
User ID: uid_a1b2c3d4e5
Created: 2026-02-21T13:27:09Z
This is the 847th user to register this month.
Timestamp: 2026-02-21T13:27:11Z
View full payload in Webhookify Dashboard
Troubleshooting
-
Cloud Function fails to deploy: Ensure you are on the Firebase Blaze plan, as the Spark plan does not support outbound network requests from Cloud Functions. Also check that your
node-fetchdependency (oraxios) is installed in the functions directory:cd functions && npm install node-fetch. -
Function deploys but no events arrive at Webhookify: Check the Cloud Functions logs with
firebase functions:logfor errors. Common issues include incorrect Webhookify URL, missing async/await on the fetch call, and the function finishing before the HTTP request completes. Always return the fetch promise or use await. -
Crashlytics events are delayed: Crashlytics processes crash reports in batches, so there may be a delay of 1-5 minutes between the crash occurring and the Cloud Function triggering. This is a Crashlytics platform behavior and not related to Webhookify.
-
Firestore triggers firing too frequently: If your Firestore collection receives many writes per second, you may generate a high volume of webhook events. Consider adding logic to your Cloud Function to filter events (e.g., only notify for documents where
amount > 100orpriority === 'high'). -
Authentication events missing user details: Some authentication providers do not return all user fields. For example, anonymous auth users will not have an email or display name. Add null checks in your Cloud Function and provide fallback values to avoid sending incomplete payloads.
Store your Webhookify endpoint URL as a Firebase environment configuration variable rather than hardcoding it. Run firebase functions:config:set webhookify.url="https://hook.webhookify.app/wh/your_endpoint" and access it in your function with functions.config().webhookify.url. This makes it easy to update the URL without redeploying your functions and keeps sensitive configuration out of your source code.
Monitor Your Firebase App in Real Time
Get instant notifications for user signups, database changes, crashes, and more. Webhookify delivers AI-summarized Firebase alerts to Telegram, Discord, Slack, or your phone.
Get Started FreeRelated Articles
- Webhook Error Handling Best Practices
- Get Instant Webhook Push Notifications on Your Phone
- Security Event Monitoring with Webhooks
- Building Real-Time Analytics with Webhooks
- How to Set Up Supabase Webhook Notifications
- How to Set Up Clerk Webhook Notifications