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');
});