Comprehensive Guide to Firebase Admin SDK APIs

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

Leave a Reply

Your email address will not be published. Required fields are marked *