Heap

Fuel product growth and team agility. Heap automatically captures web and mobile app behavioral data. Retroactively analyze behavioral data without writing code.

Integrate the Heap API with the Firebase Admin SDK API

Setup the Heap API trigger to run a workflow which integrates with the Firebase Admin SDK API. Pipedream's integration platform allows you to integrate Heap and Firebase Admin SDK remarkably fast. Free for developers.

New Child Object in a Realtime Database from the Firebase Admin SDK API

Emit new event when a new child object is discovered within a specific path

 
Try it
New Document in Firestore Collection from the Firebase Admin SDK API

Emit new event when a structured query returns new documents

 
Try it
Create Document with the Firebase Admin SDK API

Creates a New Document. See the docs here

 
Try it
Create Firebase Realtime Database Record with the Firebase Admin SDK API

Creates or replaces a child object within your Firebase Realtime Database. See the docs here

 
Try it
List Documents with the Firebase Admin SDK API

Lists documents in a collection. See the docs here

 
Try it
Save Event to Firestore with the Firebase Admin SDK API

Replicate event in Firestore

 
Try it
Update Documents with the Firebase Admin SDK API

Updates a Document. See the docs here

 
Try it

Overview of Heap

The Heap API enables you to automate and integrate your user analytics data with other applications. With Heap, you can extract insights on how users interact with your product, track events without code, and funnel this data into your CRM, marketing tools, or custom dashboards. It's about connecting the dots between user actions and your strategic moves. Heap's API lets you push or pull data, so you're always up-to-date on user behavior and can personalize user experiences at scale.

Connect Heap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { axios } from "@pipedream/platform"
export default defineComponent({
  props: {
    heap: {
      type: "app",
      app: "heap",
    }
  },
  async run({steps, $}) {
    // From the docs: https://docs.heap.io/reference#track-1
    // "Requests are limited to 30 requests per 30 seconds per identity per app_id"
    return await axios($, {
      method: "POST",
      url: `https://heapanalytics.com/api/track`,
      headers: {
        "Content-Type": "application/json",
      },
      data: {
        app_id: this.heap.$auth.app_id,
        identity: params.identity,
        event: params.event,
        timestamp: params.timestamp || (new Date()).toISOString(),
        properties: params.properties,
      }
    })
  },
})

Overview of Firebase Admin SDK

The Firebase Admin SDK API provides powerful backend functionality for Firebase apps. It allows you to interact with Firebase services like Firestore, Firebase Realtime Database, Firebase Storage, and Firebase Authentication directly from a server. With Pipedream, you can harness this API to automate complex workflows, respond to Firebase events in real-time, and integrate with countless other services.

Connect Firebase Admin SDK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import admin from "firebase-admin"
export default defineComponent({
  props: {
    firebase_admin_sdk: {
      type: "app",
      app: "firebase_admin_sdk",
    },
  },
  async run({ steps, $ }) {
    // Enter values for the following parameters below this code step,
    // These get passed to the initializeApp method below.
    const { 
      projectId, 
      clientEmail, 
      privateKey,
      region = "firebaseio.com",
    } = this.firebase_admin_sdk.$auth

    // Before passing the privateKey to the initializeApp constructor,
    // we have to replace newline characters with literal newlines
    const formattedPrivateKey = privateKey.replace(/\\n/g, "\n")

    // See https://firebase.google.com/docs/reference/admin/node/admin.credential.html#cert
    if (!admin.apps.length) {
      admin.initializeApp({
        credential: admin.credential.cert({
          projectId,
          clientEmail,
          privateKey: formattedPrivateKey,
        }),
        databaseURL: `https://${projectId}-default-rtdb.${region}/`,
      })
    }
  },
})