read text file from node js firebase storage

How to Read Text File from Node.js Firebase Storage

If you're working with Firebase and Node.js, you might need to read a text file stored in Firebase Storage. Here's how to do it:

Method 1: Using Firebase Admin SDK

The Firebase Admin SDK allows you to interact with Firebase services from privileged environments such as servers or cloud functions. It provides a convenient way to access Firebase Storage from Node.js.

First, install the Firebase Admin SDK:

npm install firebase-admin

Then, initialize the SDK:

// Initialize Firebase Admin SDK
const admin = require("firebase-admin");

// Fetch the service account key JSON file contents
const serviceAccount = require("./path/to/serviceAccountKey.json");

// Initialize Firebase Admin SDK
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  storageBucket: ""
});

// Initialize Cloud Storage bucket
const bucket = admin.storage().bucket();

Replace <your-storage-bucket> with the name of your Storage bucket.

Now, you can use the bucket object to read a text file:

// Read a text file
const file = bucket.file("path/to/text-file.txt");

file.download(function(err, contents) {
  if (!err) {
    console.log(contents.toString());
  }
});

The download() method downloads the file from Storage and returns its contents as a buffer. You can convert the buffer to a string using the toString() method.

Method 2: Using Firebase Storage REST API

If you don't want to use the Firebase Admin SDK, you can use the Firebase Storage REST API to read a text file from Node.js.

First, get a Firebase access token:

// Fetch Firebase access token
const { GoogleAuth } = require('google-auth-library');

async function getAccessToken() {
  const auth = new GoogleAuth({
    scopes: ['https://www.googleapis.com/auth/firebase']
  });

  const { access_token } = await auth.getAccessToken();
  return access_token;
}

const accessToken = await getAccessToken();

Next, make an HTTP request to download the file:

// Make HTTP request to download file
const https = require('https');

const options = {
  hostname: '.storage.googleapis.com',
  path: '/path/to/text-file.txt',
  headers: {
    Authorization: `Bearer ${accessToken}`
  }
};

https.get(options, (res) => {
  let data = '';

  res.on('data', (chunk) => {
    data += chunk;
  });

  res.on('end', () => {
    console.log(data);
  });
});

Replace <your-storage-bucket> with the name of your Storage bucket, and /path/to/text-file.txt with the path to your text file.

Conclusion

There are two ways to read a text file from Node.js Firebase Storage: using the Firebase Admin SDK or the Firebase Storage REST API. Both methods are straightforward and easy to use. Choose the one that suits your needs best.