#### Related https://stackoverflow.com/questions/51522280/use-firebase-sdk-with-netlify-lambda-functions #### Dependencies ```json { "firebase": "^5.8.2", "firebase-admin": "^7.0.0", "netlify-lambda": "^1.3.1", } ``` #### The issue I'd love to use Firebase (Firestore/Storage) in my Netlify function, though it won't even let me import any related SDK using `netlify-lambda serve`. I've tried both [firebase](https://www.npmjs.com/package/firebase) and [firebase-admin](https://www.npmjs.com/package/firebase-admin) which respectively result in these delayed (5 - 10 seconds) errors: Using `firebase`: ```js import firebase from 'firebase/app' import 'firebase/firestore' exports.handler = (event, context, callback) => callback(null, { statusCode: 200, body: 'OK' }) ``` <details><summary>Output:</summary> ``` netlify-lambda: Starting server Lambda server is listening on 9000 Hash: e3817619e6c76f23fc78 Version: webpack 4.29.0 Time: 3210ms Built at: 02/02/2019 11:55:21 PM Asset Size Chunks Chunk Names firebase.js 2.72 MiB 0 [emitted] firebase Entrypoint firebase = firebase.js [10] external "fs" 42 bytes {0} [built] [12] ../node_modules/firebase-admin/lib/utils/error.js 34.8 KiB {0} [built] [14] ../node_modules/firebase-admin/lib/utils/validator.js 7.25 KiB {0} [built] [56] ../node_modules/firebase-admin/lib/utils/deep-copy.js 2.6 KiB {0} [built] [115] ../node_modules/firebase-admin/lib/auth/credential.js 15 KiB {0} [built] [235] ../node_modules/firebase-admin/lib/index.js 1.36 KiB {0} [built] [261] ../node_modules/firebase-admin/lib/auth/auth.js 20.5 KiB {0} [built] [262] ../node_modules/@firebase/database/dist/index.esm.js 592 KiB {0} [built] [264] ../node_modules/firebase-admin/lib/messaging/messaging.js 48.8 KiB {0} [built] [265] ../node_modules/firebase-admin/lib/storage/storage.js 4.98 KiB {0} [built] [354] ../node_modules/@google-cloud/firestore/build/src/index.js 52.9 KiB {0} [built] [422] ./components/serviceAccountKey.json 2.32 KiB {0} [built] [423] ./firebase.js 1.17 KiB {0} [built] [424] ../node_modules/firebase-admin/lib/default-namespace.js 1.16 KiB {0} [built] [425] ../node_modules/firebase-admin/lib/firebase-namespace.js 18.4 KiB {0} [built] + 780 hidden modules WARNING in ../node_modules/grpc/src/grpc_extension.js 32:12-33 Critical dependency: the request of a dependency is an expression @ ../node_modules/grpc/index.js @ ../node_modules/google-gax/build/src/grpc.js @ ../node_modules/google-gax/build/src/index.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/index.js @ ../node_modules/@google-cloud/firestore/build/src/index.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js WARNING in ../node_modules/grpc/node_modules/node-pre-gyp/lib/pre-binding.js 20:22-48 Critical dependency: the request of a dependency is an expression @ ../node_modules/grpc/src/grpc_extension.js @ ../node_modules/grpc/index.js @ ../node_modules/google-gax/build/src/grpc.js @ ../node_modules/google-gax/build/src/index.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/index.js @ ../node_modules/@google-cloud/firestore/build/src/index.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js WARNING in ../node_modules/grpc/node_modules/node-pre-gyp/lib/util/versioning.js 17:20-67 Critical dependency: the request of a dependency is an expression @ ../node_modules/grpc/node_modules/node-pre-gyp/lib/pre-binding.js @ ../node_modules/grpc/src/grpc_extension.js @ ../node_modules/grpc/index.js @ ../node_modules/google-gax/build/src/grpc.js @ ../node_modules/google-gax/build/src/index.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/index.js @ ../node_modules/@google-cloud/firestore/build/src/index.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js WARNING in ../node_modules/hash-stream-validation/index.js Module not found: Error: Can't resolve 'fast-crc32c' in '/repos/test/node_modules/hash-stream-validation' @ ../node_modules/hash-stream-validation/index.js @ ../node_modules/@google-cloud/storage/build/src/file.js @ ../node_modules/@google-cloud/storage/build/src/index.js @ ../node_modules/firebase-admin/lib/storage/storage.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js WARNING in ../node_modules/bytebuffer/dist/bytebuffer-node.js Module not found: Error: Can't resolve 'memcpy' in '/repos/test/node_modules/bytebuffer/dist' @ ../node_modules/bytebuffer/dist/bytebuffer-node.js @ ../node_modules/protobufjs/dist/protobuf.js @ ../node_modules/grpc/index.js @ ../node_modules/google-gax/build/src/grpc.js @ ../node_modules/google-gax/build/src/index.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/index.js @ ../node_modules/@google-cloud/firestore/build/src/index.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js WARNING in ../node_modules/write-file-atomic/index.js Module not found: Error: Can't resolve 'worker_threads' in '/repos/test/node_modules/write-file-atomic' @ ../node_modules/write-file-atomic/index.js @ ../node_modules/gcs-resumable-upload/node_modules/configstore/index.js @ ../node_modules/gcs-resumable-upload/build/src/index.js @ ../node_modules/@google-cloud/storage/build/src/file.js @ ../node_modules/@google-cloud/storage/build/src/index.js @ ../node_modules/firebase-admin/lib/storage/storage.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js ``` </details> <br> Or using `firebase-admin`: ```js import * as admin from 'firebase-admin' exports.handler = (event, context, callback) => callback(null, { statusCode: 200, body: 'OK' }) ``` <details><summary>Output:</summary> ``` netlify-lambda: Starting server Lambda server is listening on 9000 Hash: e3817619e6c76f23fc78 Version: webpack 4.29.0 Time: 3102ms Built at: 02/02/2019 11:53:21 PM Asset Size Chunks Chunk Names firebase.js 2.72 MiB 0 [emitted] firebase Entrypoint firebase = firebase.js [10] external "fs" 42 bytes {0} [built] [12] ../node_modules/firebase-admin/lib/utils/error.js 34.8 KiB {0} [built] [14] ../node_modules/firebase-admin/lib/utils/validator.js 7.25 KiB {0} [built] [56] ../node_modules/firebase-admin/lib/utils/deep-copy.js 2.6 KiB {0} [built] [115] ../node_modules/firebase-admin/lib/auth/credential.js 15 KiB {0} [built] [235] ../node_modules/firebase-admin/lib/index.js 1.36 KiB {0} [built] [261] ../node_modules/firebase-admin/lib/auth/auth.js 20.5 KiB {0} [built] [262] ../node_modules/@firebase/database/dist/index.esm.js 592 KiB {0} [built] [264] ../node_modules/firebase-admin/lib/messaging/messaging.js 48.8 KiB {0} [built] [265] ../node_modules/firebase-admin/lib/storage/storage.js 4.98 KiB {0} [built] [354] ../node_modules/@google-cloud/firestore/build/src/index.js 52.9 KiB {0} [built] [422] ./components/serviceAccountKey.json 2.32 KiB {0} [built] [423] ./firebase.js 1.17 KiB {0} [built] [424] ../node_modules/firebase-admin/lib/default-namespace.js 1.16 KiB {0} [built] [425] ../node_modules/firebase-admin/lib/firebase-namespace.js 18.4 KiB {0} [built] + 780 hidden modules WARNING in ../node_modules/grpc/src/grpc_extension.js 32:12-33 Critical dependency: the request of a dependency is an expression @ ../node_modules/grpc/index.js @ ../node_modules/google-gax/build/src/grpc.js @ ../node_modules/google-gax/build/src/index.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/index.js @ ../node_modules/@google-cloud/firestore/build/src/index.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js WARNING in ../node_modules/grpc/node_modules/node-pre-gyp/lib/pre-binding.js 20:22-48 Critical dependency: the request of a dependency is an expression @ ../node_modules/grpc/src/grpc_extension.js @ ../node_modules/grpc/index.js @ ../node_modules/google-gax/build/src/grpc.js @ ../node_modules/google-gax/build/src/index.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/index.js @ ../node_modules/@google-cloud/firestore/build/src/index.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js WARNING in ../node_modules/grpc/node_modules/node-pre-gyp/lib/util/versioning.js 17:20-67 Critical dependency: the request of a dependency is an expression @ ../node_modules/grpc/node_modules/node-pre-gyp/lib/pre-binding.js @ ../node_modules/grpc/src/grpc_extension.js @ ../node_modules/grpc/index.js @ ../node_modules/google-gax/build/src/grpc.js @ ../node_modules/google-gax/build/src/index.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/index.js @ ../node_modules/@google-cloud/firestore/build/src/index.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js WARNING in ../node_modules/hash-stream-validation/index.js Module not found: Error: Can't resolve 'fast-crc32c' in '/repos/test/node_modules/hash-stream-validation' @ ../node_modules/hash-stream-validation/index.js @ ../node_modules/@google-cloud/storage/build/src/file.js @ ../node_modules/@google-cloud/storage/build/src/index.js @ ../node_modules/firebase-admin/lib/storage/storage.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js WARNING in ../node_modules/bytebuffer/dist/bytebuffer-node.js Module not found: Error: Can't resolve 'memcpy' in '/repos/test/node_modules/bytebuffer/dist' @ ../node_modules/bytebuffer/dist/bytebuffer-node.js @ ../node_modules/protobufjs/dist/protobuf.js @ ../node_modules/grpc/index.js @ ../node_modules/google-gax/build/src/grpc.js @ ../node_modules/google-gax/build/src/index.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/firestore_client.js @ ../node_modules/@google-cloud/firestore/build/src/v1beta1/index.js @ ../node_modules/@google-cloud/firestore/build/src/index.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js WARNING in ../node_modules/write-file-atomic/index.js Module not found: Error: Can't resolve 'worker_threads' in '/repos/test/node_modules/write-file-atomic' @ ../node_modules/write-file-atomic/index.js @ ../node_modules/gcs-resumable-upload/node_modules/configstore/index.js @ ../node_modules/gcs-resumable-upload/build/src/index.js @ ../node_modules/@google-cloud/storage/build/src/file.js @ ../node_modules/@google-cloud/storage/build/src/index.js @ ../node_modules/firebase-admin/lib/storage/storage.js @ ../node_modules/firebase-admin/lib/firebase-namespace.js @ ../node_modules/firebase-admin/lib/default-namespace.js @ ../node_modules/firebase-admin/lib/index.js @ ./firebase.js ``` </details>