Hi all - I am using n8n installed by easypanel (so docker) and I want to use firebase-admin sdk since there isn’t a node for it.
eg on my node.js computer I would just type
npm install -g firebase-admin
But I don’t know how to do it for easypanel/n8n.
Does anyone know how to do this or where I can look? Or am I crazy and wasting time and it’s actually possible with existing nodes? (I want to use firebase.auth().getUser($byUid) to get the email address of a provided uid)
You would need to build your own docker image that includes the node library if you want to use it. I don’t know a lot about Firebase but does it not have a REST api? If it does you could use that with the HTTP request node.
Firebase does have a REST api but not for some of the functionality provided by the firebase-admin sdk so although the REST connectivity was possible with native n8n connections, it wasn’t what I needed.
I needed to install the node library.
But because I was using n8n through Easypanel, and am a complete noob when it comes to server/backend, I had no idea what I was doing or how to connect the installs.
I managed to figure it out through trial and error.
In summary, I installed the npm package on the host machine, and opened a pathway to it via the BIND MOUNT option in Easypanel’s UI.
I think if I were doing this properly I would spin up a new docker container on the server to house all my node packages but I don’t know what I’m doing and reckon easypanel would once again throw me for a curveball in terms of how I actually figure out the path by which to reference in the Bind Mount settings.
Cos like if I were looking for the path to actual n8n files in use - it’s like a really complex path - I’m guessing it gets spun up for the deployment only, like /docker2/29034809872034/blah/blah/blah
So if I had node files added in there, it wouldn’t be able to be referenced as a bind mount elsewhere.
Anyways - cross posting my answer here for others: