Unable to delete from firestore due to Error: 14 UNAVAILABLE: No connection established

Viewed 508

I am trying to connect to google firestore from my node.js application. I am deleting a few fields , for which I wrote the below code. It seems to run fine until it throws the following error and dies Error: 14 UNAVAILABLE: No connection established . My internet connection is fine , so I dont understand why the connection is being lost. I also added a delay in case that helps. It seems that the database server can't take too many requests at the same time. OS : Windows 10 DB : firebase firestore

const csv = require('csv-parser')
const fs = require('fs')
const results = [];

var admin = require("firebase-admin");

var serviceAccount = require("D:\\NodeJS\\FirestoreConnection1\\trackkarona-firebase-adminsdk-lr090-3d8f687f9b.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://trackkarona.firebaseio.com"
});

let db = admin.firestore();

let drugRef = db.collection('Med_Data_Test3');

let drugDocumentId = '';
var drugData ;
var FAQDoc ;
var waitTill ;
seconds = 1;

fs.createReadStream('onemg_main_faq.csv')
  .pipe(csv())
  .on('data', (data) => {
    let query = drugRef.where('Brand_Name', '==', data.Brand_Name).get()
  .then(snapshot => {

  if (snapshot.empty) {
      console.log('No matching documents.');
      return;
    }  

    snapshot.forEach(doc => {
                drugDocumentId  = doc.id ;
                drugData = doc.data();
                console.log('data : ', drugDocumentId , drugData.Brand_Name );  


                FAQDoc = db.collection('Med_Data_Test3').doc(drugDocumentId).collection('FAQs').get()
                 .then(snapshot => {
                       if (snapshot.empty) {
                        console.log('No matching FAQ documents.');
                        return;
                        } 
                        waitTill = new Date(new Date().getTime() + seconds * 1000);
                        while(waitTill > new Date()){}
                        snapshot.forEach(doc => {
                        let deleteFAQ = db.collection('Med_Data_Test3').doc(drugDocumentId).collection('FAQs').doc(doc.id).delete();
                        console.log('Deleted FAQ' , doc.id);
                        })
                 })
                  .catch(err => {
                    console.log('Error getting documents', err);
                });


                      })
    })
        .catch((error) => {
              console.error(error);
            });

         }) // on data
  .on('end', () => {
    console.log('Completed reading CSV file');  
  });
0 Answers
Related