Skip to content

[FR] Bundle size #1426

@hffmnn

Description

@hffmnn

Is your feature request related to a problem? Please describe.
When using firebase-admin on AWS lambda it adds a big blog to the bundle size. We are using esbuild to bundle our sources written in TS, and bundling the admin sdk adds an extra of 5.7MB, minified 2.8MB. This is far from optimal, because the bundle should be as small as possible for better cold-start performance. The code looks like this:

import * as admin from "firebase-admin";

const app = admin.initializeApp();
console.log("app :>> ", app);

const firestore = app.firestore();
console.log("firestore :>> ", firestore);

Describe the solution you'd like
Make it possible to load or install only the parts of the SDK that are really needed (like the new version of the js client sdk => https://github.com/firebase/firebase-js-sdk)

Describe alternatives you've considered
I tried to add only parts of SDK we need, e.g.

import { initializeApp } from "firebase-admin/lib/firebase-namespace";

const app = initializeApp();
console.log("app :>> ", app);

const firestore = app.firestore();
console.log("firestore :>> ", firestore);

but this gives the same bundle size and it does not work, even when compiling with tsc: When running via node main.js it gives this:

/some/path/main.js:6
var app = (0, firebase_namespace_1.initializeApp)();
                                                 ^

TypeError: (0 , firebase_namespace_1.initializeApp) is not a function

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions