Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
firebase-admin
Advanced tools
The firebase-admin npm package is a server-side library that allows Node.js applications to interact with Firebase services such as Firestore, Firebase Realtime Database, Firebase Authentication, and Firebase Cloud Messaging. It provides administrative privileges to perform operations like creating and managing users, setting security rules, and accessing database services programmatically.
Authentication
This feature allows you to create and manage users in Firebase Authentication. The code sample demonstrates how to create a new user with specific attributes.
admin.auth().createUser({
email: 'user@example.com',
emailVerified: false,
password: 'secretPassword',
displayName: 'John Doe',
photoURL: 'http://www.example.com/12345678/photo.png',
disabled: false
})
.then(function(userRecord) {
console.log('Successfully created new user:', userRecord.uid);
})
.catch(function(error) {
console.log('Error creating new user:', error);
});
Database
This feature enables you to interact with Firestore, a NoSQL database. The code sample shows how to add a new document to a collection in Firestore.
var db = admin.firestore();
var docRef = db.collection('users').doc('alovelace');
var setAda = docRef.set({
first: 'Ada',
last: 'Lovelace',
born: 1815
});
Realtime Database
This feature allows you to interact with Firebase Realtime Database. The code sample demonstrates how to set data in the database.
var db = admin.database();
var ref = db.ref('server/saving-data/fireblog');
var usersRef = ref.child('users');
usersRef.set({
alanisawesome: {
date_of_birth: 'June 23, 1912',
full_name: 'Alan Turing'
},
gracehop: {
date_of_birth: 'December 9, 1906',
full_name: 'Grace Hopper'
}
});
Cloud Messaging
This feature is used to send notifications and messages to users through Firebase Cloud Messaging. The code sample illustrates how to send a message to a device with a specific registration token.
var registrationToken = 'YOUR_REGISTRATION_TOKEN';
var message = {
data: {
score: '850',
time: '2:45'
},
token: registrationToken
};
admin.messaging().send(message)
.then((response) => {
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
Parse Server is an open-source version of the Parse backend that can be deployed to any infrastructure that can run Node.js. It provides functionalities similar to Firebase, such as user authentication, database operations, and push notifications. Compared to firebase-admin, Parse Server is self-hosted and offers more flexibility in terms of infrastructure.
The AWS SDK for JavaScript allows developers to interact with AWS services such as DynamoDB, Cognito for authentication, and SNS for notifications. While it provides similar functionalities, it is part of the broader AWS ecosystem and requires more setup and management compared to firebase-admin, which is more focused on ease of use and rapid development.
The Azure SDK for JavaScript enables interaction with Azure services like Azure Cosmos DB, Azure Active Directory for authentication, and Azure Notification Hubs for messaging. Similar to AWS SDK, it is part of a larger cloud platform and offers extensive services beyond what firebase-admin provides, but with potentially more complexity in setup and management.
Firebase provides the tools and infrastructure you need to develop your app, grow your user base, and earn money. The Firebase Admin Node.js SDK enables access to Firebase services from privileged environments (such as servers or cloud) in Node.js.
For more information, visit the Firebase Admin SDK setup guide.
The Firebase Admin Node.js SDK is available on npm as firebase-admin
:
$ npm install --save firebase-admin
To use the module in your application, require
it from any JavaScript file:
const { initializeApp } = require("firebase-admin/app");
initializeApp();
If you are using ES2015, you can import
the module instead:
import { initializeApp } from "firebase-admin/app";
initializeApp();
Please refer to the CONTRIBUTING page for more information about how you can contribute to this project. We welcome bug reports, feature requests, code review feedback, and also pull requests.
We support Node.js 14 and higher. However, Node.js 14 and 16 support is deprecated. We strongly encourage you to use Node.js 18 or higher as we will drop support for Node.js 14 and 16 in the next major version.
Please also note that the Admin SDK should only be used in server-side/back-end environments controlled by the app developer. This includes most server and serverless platforms (both on-premise and in the cloud). It is not recommended to use the Admin SDK in client-side environments.
Thanks to the team at Casetext for transferring
ownership of the firebase-admin
npm module over to the Firebase team
and for their longtime use and support of the Firebase platform.
Firebase Admin Node.js SDK is licensed under the Apache License, version 2.0.
Your use of Firebase is governed by the Terms of Service for Firebase Services.
FAQs
Firebase admin SDK for Node.js
The npm package firebase-admin receives a total of 1,466,121 weekly downloads. As such, firebase-admin popularity was classified as popular.
We found that firebase-admin demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.