# Adding Firebase JavaScript SDK's to Node-red results in error 'ERR PACKAGE PATH NOT EXPORTED'

**URL:** <https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496>\
**Category:** General\
**Created:** [21 October 2021 07:56 UTC](https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496 "2021-10-21T07:56:44Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sulomus](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sulomus/32/49578_2.png) [@Sulomus](https://discourse.nodered.org/u/Sulomus)\
**Post date:** [21 October 2021 07:56 UTC](https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496/1 "2021-10-21T07:56:44Z")

</div>

Hi everyone,  
earlier this week I created [this post](https://discourse.nodered.org/t/can-i-use-firebase-javascript-sdk-inside-node-red-flows/52378) asking if it is possible to add JavaScript Firebase SDK's to Node-red. I got redirected to [official Node-red docs](https://nodered.org/docs/user-guide/writing-functions#loading-additional-modules) and also to this [example](https://flows.nodered.org/flow/195773d3b493d81c9bf012f64da02ea3).

I got the example working as seen in the picture below:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/8/b/8b76497f83536019a4600ed7bfc7c132f4ba2171.png)

But now when I wanna start the Node-red with `Firebase SDK'`s I get an error:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/0/a042030a6542de63e2cd6abb1759099b5d13496a.png)

This is my `settings.js` file:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/6/3654a36f11154baadfcd965c06c73959d52e3597.png)

I know for sure that the latest Firebase SDK's is installed locally in Node-red:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/2/2222903fa36580757d74fb4c9a817c3472b4948a.png)

I would be helpful for any help really!  
Thank you in advance.

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [21 October 2021 08:02 UTC](https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496/2 "2021-10-21T08:02:05Z")

</div>

Looking at their documentation, you require `firebase/app`, not `firebase`.  
See [here](https://www.npmjs.com/package/firebase#get-the-code-nodejs---server-and-command-line) for their docs.

---

<div class="post-metadata">

**Author:** ![Sulomus](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sulomus/32/49578_2.png) [@Sulomus](https://discourse.nodered.org/u/Sulomus)\
**Post date:** [21 October 2021 08:09 UTC](https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496/3 "2021-10-21T08:09:04Z")

</div>

Wow! Now it doesn't generate any `errors` and I can load the basic `flow` and `dashboard`!

I will try immediately setting up a Firebase code and try connecting to database! But I think it will work now! 🔥

---

<div class="post-metadata">

**Author:** ![Sulomus](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sulomus/32/49578_2.png) [@Sulomus](https://discourse.nodered.org/u/Sulomus)\
**Post date:** [21 October 2021 10:23 UTC](https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496/4 "2021-10-21T10:23:10Z")

</div>

Please I need help with something.

Firebase JavaScript SDK's are tree shakable, so I need to import modules by their name like in the example from their docs below:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/d/0de4cd1f1aaaca526e0ff09cb0c4b04dfdfc5a86.png)

How can I reproduce this behavior inside `functionGlobalContext`?  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/7/b76ede4a0ee26d7a1e0b935f2ecf3f726f30bbe6.png)

Also please - what am I getting when I call now inside a Node-red function this code:

```auto
var firebase = global.get('firebase');
var firebaseDatabase = global.get('firebaseDatabase');

```

Do I now need to write:  
`const {initializeApp} = require(firebase);`

When I log the `firebase` object I get this:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/d/4df24a1fb8036d6264500a4fbb387f136f6c90d9.png)

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [21 October 2021 10:30 UTC](https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496/5 "2021-10-21T10:30:38Z")

</div>

Without knowing anything specific about Firebase, the object returned by `require('firebase/app')` has a lot of functions defined on it that you can use.

The code:

```auto
const { initializeApp } = require('firebase/app');

```

is one way to load just the functions you want to use.

But you don't have to do it that way. You can still require the whole `firebase/app` module and then call the functions it provides:

```auto
const firebaseApp = require('firebase/app');
// Call `initializeApp`:
firebaseApp.initializeApp( ... )

```

And the same will be true of `firebase/database`.

So you can do the requires in `functionGlobalContext` just as you show. Then in your function node, you would do:

```auto
const firebaseApp = global.get('firebase');
firebaseApp.initializeApp( ... );

```

---

<div class="post-metadata">

**Author:** ![Sulomus](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sulomus/32/49578_2.png) [@Sulomus](https://discourse.nodered.org/u/Sulomus)\
**Post date:** [21 October 2021 10:36 UTC](https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496/6 "2021-10-21T10:36:54Z")

</div>

This is code snippet on how to initialize Firebase from their docs:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/4/4430cfb99a1ffe3b15ffd16b34d39caab241cd2f.png)

In order to achieve this I need to setup my settings.js file like this:

```auto
firebase: require('firebase/app'),
firebaseDatabase: require('firebase/database')

```

And in my function I need to call this:

```auto
const firebase = global.get('firebase');
const firebaseDatabase = global.get('firebaseDatabase');

const firebaseConfig = {
//my config
};

const app = firebase.initializeApp(firebaseConfig);
const database = firebaseDatabase.getDatabase(app);

```

Do I get it right or I did a mistake somewhere?

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [21 October 2021 10:39 UTC](https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496/7 "2021-10-21T10:39:39Z")

</div>

That looks like it would work - assuming it behaves as their docs suggest.

---

<div class="post-metadata">

**Author:** ![Sulomus](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sulomus/32/49578_2.png) [@Sulomus](https://discourse.nodered.org/u/Sulomus)\
**Post date:** [21 October 2021 10:44 UTC](https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496/8 "2021-10-21T10:44:06Z")

</div>

Yes it works! I can even now write data into the database!

Thank you a lot man - you just saved me ❤

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [4 November 2021 10:44 UTC](https://discourse.nodered.org/t/adding-firebase-javascript-sdks-to-node-red-results-in-error-err-package-path-not-exported/52496/9 "2021-11-04T10:44:33Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
