With Firebase, we've been working towards a world where developers don't have to
deal with managing servers and can instead build web and mobile apps with only
client-side code. However, there are times when you really do need to spin up
your own server. For example, you may want to integrate with a third-party API
(such as an email or SMS service), complete a computationally expensive task, or
have a need for a trusted actor. We want to make your experience on this part of
your stack as simple as it is on the front-end. Towards that aim, we announced
the Firebase Admin SDKs
for Node.js and Java at the Firebase Dev Summit in Berlin earlier this week.
What are the Admin SDKs?
The Firebase Admin SDKs provide developers with programmatic, second-party
access to Firebase services from server environments. Second-party here refers
to the fact that the SDKs are granted elevated permissions that allow them to do
more than a normal, untrusted client device can. The Admin SDKs get these
elevated permissions since they are authenticated with a service account, a
special Google account that can be used by applications to access Google
services programmatically. The Admin SDKs are meant to complement the existing
Firebase web and mobile clients which provide third-party, end-user access to
Firebase services on client devices.
Some of this may sound familiar for those of you who have used the existing
Firebase Node.js and Java SDKs. The difference is that we have now split the
second-party (aka "admin") and third-party (aka "end-user") access use cases
into separate SDKs instead of conflating them together. This should make it
easier for beginners and experts alike to know which SDK to use and which
documentation to follow. It also allows us to tailor the Admin SDKs towards
server-specific use cases. A great example of this is the new user management
auth API which we will go into in the next section.
What can the Admin SDKs do?
The Admin SDKs for Node.js and Java offer the following admin capabilities that
already existed in the prior server SDKs:
In addition, the Node.js SDK brings some exciting new functionality:
How can I get started with the Admin SDKs?
The best place to start is with our Admin SDKs setup guide.
The guide will walk you through how to download the SDK, generate a service
account key file, and use that key file to initialize the Admin SDK. Thanks to
our new Service
Accounts panel in your Firebase Console settings, generating
service account keys should be a breeze.
What's next for the Admin SDKs?
This is really just the beginning for the Admin SDKs. We plan to expand the
Admin SDKs across two dimensions. Firstly, we want to provide Admin SDKs in more
programming languages, allowing you to write code in the language you feel most
comfortable. Secondly, we plan to integrate with more Firebase services,
including adding support for services like Firebase Cloud Messaging and bringing
the new user management API to Java.
Would you like us to build an Admin SDK in a particular language? Do you want
the Admin SDKs to support a certain Firebase service or feature? Let us know in
the comments below or by sending us a note through our feature
request support channel.
We are excited to expand our first-class support for backend developers in the
Firebase ecosystem. Stay tuned for more to come in the future!