Introduction to Firebase Admin SDK
The Firebase Admin SDK enables server-side interactions with Firebase services. From authentication to Firestore database operations, it provides a robust set of APIs to integrate Firebase functionalities into your backend applications seamlessly.
Authentication
With Firebase Admin, you can manage users programmatically. Here’s how to create a new user:
const admin = require('firebase-admin'); admin.initializeApp(); admin.auth().createUser({ email: 'user@example.com', emailVerified: false, phoneNumber: '+11234567890', password: 'superSecretPassword', displayName: 'John Doe', photoURL: 'http://www.example.com/12345678/photo.png', disabled: false }) .then((userRecord) => { console.log('Successfully created new user:', userRecord.uid); }) .catch((error) => { console.log('Error creating new user:', error); });
Firestore
Here’s how to add a document to Firestore:
const db = admin.firestore(); const docRef = db.collection('users').doc('alovelace'); docRef.set({ first: 'Ada', last: 'Lovelace', born: 1815 }) .then(() => { console.log('Document successfully written!'); }) .catch((error) => { console.error('Error writing document:', error); });
Realtme Database
Using the Firebase Admin SDK, you can interact with the Realtime Database. Here is how you can write data:
admin.database().ref('users/' + userId).set({ username: 'john_doe', email: 'john_doe@example.com', profile_picture : 'http://example.com/john_doe_photo.png' });
Messaging
Send messages to devices using Firebase Cloud Messaging:
const message = { notification: { title: 'Hello Firebase!', body: 'This is a Firebase Cloud Messaging test message!' }, token: '' }; admin.messaging().send(message) .then((response) => { console.log('Successfully sent message:', response); }) .catch((error) => { console.log('Error sending message:', error); });
Complete App Example
Below is an end-to-end example of a Firebase Admin SDK application to create a user, store user details in Firestore and send a welcome message:
const admin = require('firebase-admin'); admin.initializeApp(); // Create a user admin.auth().createUser({ email: 'newuser@example.com', password: 'securePassword123' }) .then((userRecord) => { console.log('Successfully created new user:', userRecord.uid); // Add user details to Firestore const db = admin.firestore(); const docRef = db.collection('users').doc(userRecord.uid); return docRef.set({ email: 'newuser@example.com', signup_date: new Date() }); }) .then(() => { console.log('User details added to Firestore.'); // Send welcome message const message = { notification: { title: 'Welcome to Firebase!', body: 'Thanks for signing up.' }, token: '' }; return admin.messaging().send(message); }) .then((response) => { console.log('Successfully sent welcome message:', response); }) .catch((error) => { console.log('Error:', error); });
By leveraging the Firebase Admin SDK, you can simplify backend operations and focus on building impactful features for your application.
Hash: 2277f852f6c18ce5f0c1355ccafab07e7c559f7fe960195022833ffea0d2fc38