How to Set Up Firebase Webhook Notifications with Webhookify

Published Feb 21 202610 min read
Firebase webhook setup 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

  1. A Firebase project on the Blaze (pay-as-you-go) plan (required for outbound Cloud Function HTTP requests)
  2. Firebase CLI installed (npm install -g firebase-tools)
  3. A Webhookify account (sign up free at webhookify.app)
  4. At least one notification channel configured in Webhookify (Telegram, Discord, Slack, Email, or mobile push)
  5. Basic familiarity with JavaScript/TypeScript and Cloud Functions

Step-by-Step Setup Guide

1

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.

2

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.

3

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
4

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 registration
  • auth.user.deleted -- User account deletion
  • auth.user.beforeCreate -- Pre-creation hook for validation (requires Blocking Functions)

Firestore Events:

  • firestore.document.created -- New document added to a collection
  • firestore.document.updated -- Existing document modified
  • firestore.document.deleted -- Document removed from a collection

Crashlytics Events:

  • crashlytics.newFatalIssue -- First occurrence of a new crash
  • crashlytics.newNonfatalIssue -- First occurrence of a non-fatal error
  • crashlytics.regression -- A previously resolved issue has recurred
  • crashlytics.velocityAlert -- Crash rate spike detected

Realtime Database Events:

  • database.ref.onCreate -- New data written to a path
  • database.ref.onUpdate -- Data updated at a path
  • database.ref.onDelete -- Data deleted from a path

Cloud Storage Events:

  • storage.object.finalize -- File uploaded to a bucket
  • storage.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.

5

Test Your Configuration

After deploying your Cloud Functions, test each one:

Testing auth events:

  1. Create a new user account in your app (or use the Firebase Authentication console to add a test user)
  2. Check your Webhookify dashboard for the auth.user.created event
  3. Verify the notification arrived on your configured channel

Testing Firestore events:

  1. Add a document to the monitored collection via the Firebase console or your app
  2. Check the Webhookify dashboard for the firestore.document.created event
  3. Verify the notification content includes the document data

Testing Crashlytics events:

  1. Force a test crash in your mobile app using FirebaseCrashlytics.instance.crash()
  2. Wait for the crash report to be processed (may take a few minutes)
  3. 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 EventDescription
auth.user.createdTriggered when auth user created occurs
auth.user.deletedTriggered when auth user deleted occurs
firestore.document.createdTriggered when firestore document created occurs
firestore.document.updatedTriggered when firestore document updated occurs
firestore.document.deletedTriggered when firestore document deleted occurs
crashlytics.newFatalIssueTriggered when crashlytics newFatalIssue occurs
crashlytics.newNonfatalIssueTriggered when crashlytics newNonfatalIssue occurs
crashlytics.regressionTriggered when crashlytics regression occurs
crashlytics.velocityAlertTriggered when crashlytics velocityAlert occurs
database.ref.onCreateTriggered when database ref onCreate occurs
database.ref.onUpdateTriggered when database ref onUpdate occurs
database.ref.onDeleteTriggered when database ref onDelete occurs
storage.object.finalizeTriggered when storage object finalize occurs
storage.object.deleteTriggered when storage object delete occurs

Real-World Use Cases

  • User Growth Monitoring: A startup tracks auth.user.created events 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.newFatalIssue and crashlytics.velocityAlert events 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 orders Firestore 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.deleted events 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

  1. 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-fetch dependency (or axios) is installed in the functions directory: cd functions && npm install node-fetch.

  2. Function deploys but no events arrive at Webhookify: Check the Cloud Functions logs with firebase functions:log for 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.

  3. 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.

  4. 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 > 100 or priority === 'high').

  5. 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 Free

Related Articles

Frequently Asked Questions

How to Set Up Firebase Webhook Notifications with Webhookify - Webhookify | Webhookify