ECONNRESET error while execute firebase function










0















I made some function to send a notification email to over 20 managers' email address for every 5min using firebase function.



I used scheduled triggering ( to call checkNotices function ) with cron job. It's not a problem.



When cron job engine called checkNotices function, sometimes I got an errors like below.



{ Error: read ECONNRESET
at exports._errnoException (util.js:1020:11)
at TLSWrap.onread (net.js:580:26)
code: 'ECONNRESET',
errno: 'ECONNRESET',
syscall: 'read',
config:
adapter: [Function: httpAdapter],
transformRequest: '0': [Function: transformRequest] ,
transformResponse: '0': [Function: transformResponse] ,
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
headers:
Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'axios/0.16.2',
'Content-Length': 41877 ,
method: 'post',
url: 'https://us-central1-firebase-sending-mail-t3Bd3.cloudfunctions.net/sendingMail/',
data:
...
(something something..)



But sometimes it works well,
it makes me more confused.



Here is some part of code snippets related function.



const axios = require('axios');
const functions = require('firebase-functions');
const admin = require('firebase-admin');

exports.checkNotices = functions.https.onRequest((request, response) =>
const database = admin.database();
const date = new Date();
// const hours = date.getHours();
const timestamp = date.getTime();
const oneDay = 1 * 1000 * 60 * 60 * 23;
const timeZone = commonHelpers.getTimeZoneForNotifications(); // it returns like +2, -7, etc.
database.ref('clubs').orderByChild('timeZone').equalTo(timeZone).once('value')
.then((clubsData) =>
let clubs = clubsData ? clubsData.val() : null;
if (clubs)
clubs = commonHelpers.idConvertor(clubs);
clubs = clubs.filter((club) => (timestamp > (club.lastCheckDate + oneDay))));
);
const processClubPromises = clubs.map((club) =>
return processClubPromise(club, database);
);
return Promise.all(processClubPromises);
else
console.log(`empty clubs for timezone $timeZone`);
Promise.resolve();

)
.then(() =>
response.send('ok');
)
.catch((err) =>
console.error('error:', err);
response.send(err);
);
);



function processClubPromise(club, database)
let liveMessages = ;
let mgr = null;
return database.ref(`mgrs/$club.mgrId`).once('value')
.then((mgrData) =>
mgr = mgrData ? mgrData.val() : null;
if (mgr)
return database.ref('messages').orderByChild('statusFilter').equalTo(`$club._id_active`).once('value');
else
Promise.resolve();

)
.then((liveMessagesData) =>
liveMessages = liveMessagesData ? liveMessagesData.val() : null;
if (liveMessages)
const getPausedMessagesPromises = liveMessages.map((activemessage) =>
const clubNotice = commonHelpers.clubNoticeConvertor(club, mgr, activemessage);
return processGetPausedMessages(clubNotice, club);
);
return Promise.all(getPausedMessagesPromises);
else
Promise.resolve();

)
.then((listOfUnreadedmessages) =>
if (listOfUnreadedmessages)
const content = emailHelpers.getclubNoticeEmailContent(listOfUnreadedmessages);
if (content && content.contentLength > 0)
const params =
fromEmail: EMAIL_SENDER,
fromEmailName: 'Statistics email',
replyTo: EMAIL_SENDER,
toEmail: club.email,
subject: `Here is notification`,
content: content.contentText,
;
const url = `$HOST/sendingMail/`;
return axios.post(url, qs.stringify(params)).catch((err) =>
console.error('err in axios', err, url);
);
else
Promise.resolve();

else
Promise.resolve();

)
.then(() =>
return database.ref().update(
[`clubs/$club._id/lastCheckDate`]: new Date().getTime(),
);
);



function processGetPausedMessages(clubEmailNotice, club)
const
userId,
userName,
= clubEmailNotice;
return new Promise((resolve, reject) =>
return smoochAccount.appUsers.getMessages(club.appId, userId)
.then((message) =>
const messages = commonHelpers.parseMessages(message, userName);
const userMessages = messages.filter((message) =>
return message.role === 'appUser';
);
const message = userMessages[userMessages.length - 1];
if (message)
resolve(notice: clubEmailNotice, message);
else
resolve();

)
.catch((err) =>
reject(err);
);
);



exports.sendingMail = functions.https.onRequest((request, response) =>
cors(request, response, () =>
const replyToName = request.body;
const fromEmail = new sendgridMailHelper.Email(request.body.fromEmail, request.body.fromEmailName);
const replyTo = replyToName ? new sendgridMailHelper.Email(request.body.replyTo, replyToName) : new sendgridMailHelper.Email(request.body.replyTo);
const toEmail = new sendgridMailHelper.Email(request.body.toEmail);
const ccEmail = request.body.ccEmail;
const subject = request.body.subject;
const content = new sendgridMailHelper.Content('text/html', request.body.content);
const mail = new sendgridMailHelper.Mail(fromEmail, subject, toEmail, content);
mail.setReplyTo(replyTo);

const sendgridRequest = sg.emptyRequest(
method: 'POST',
path: '/v3/mail/send',
body: mail.toJSON(),
);

return sg.API(sendgridRequest).then(() =>
response.send('ok');
, (err) =>
response.send(err);
);
);
);


Someone said promise is not closed properly, however if it is true why sometimes works well?



Thank you for any advice. I've spent so much time with this.
Please save my life. :/










share|improve this question




























    0















    I made some function to send a notification email to over 20 managers' email address for every 5min using firebase function.



    I used scheduled triggering ( to call checkNotices function ) with cron job. It's not a problem.



    When cron job engine called checkNotices function, sometimes I got an errors like below.



    { Error: read ECONNRESET
    at exports._errnoException (util.js:1020:11)
    at TLSWrap.onread (net.js:580:26)
    code: 'ECONNRESET',
    errno: 'ECONNRESET',
    syscall: 'read',
    config:
    adapter: [Function: httpAdapter],
    transformRequest: '0': [Function: transformRequest] ,
    transformResponse: '0': [Function: transformResponse] ,
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus],
    headers:
    Accept: 'application/json, text/plain, */*',
    'Content-Type': 'application/x-www-form-urlencoded',
    'User-Agent': 'axios/0.16.2',
    'Content-Length': 41877 ,
    method: 'post',
    url: 'https://us-central1-firebase-sending-mail-t3Bd3.cloudfunctions.net/sendingMail/',
    data:
    ...
    (something something..)



    But sometimes it works well,
    it makes me more confused.



    Here is some part of code snippets related function.



    const axios = require('axios');
    const functions = require('firebase-functions');
    const admin = require('firebase-admin');

    exports.checkNotices = functions.https.onRequest((request, response) =>
    const database = admin.database();
    const date = new Date();
    // const hours = date.getHours();
    const timestamp = date.getTime();
    const oneDay = 1 * 1000 * 60 * 60 * 23;
    const timeZone = commonHelpers.getTimeZoneForNotifications(); // it returns like +2, -7, etc.
    database.ref('clubs').orderByChild('timeZone').equalTo(timeZone).once('value')
    .then((clubsData) =>
    let clubs = clubsData ? clubsData.val() : null;
    if (clubs)
    clubs = commonHelpers.idConvertor(clubs);
    clubs = clubs.filter((club) => (timestamp > (club.lastCheckDate + oneDay))));
    );
    const processClubPromises = clubs.map((club) =>
    return processClubPromise(club, database);
    );
    return Promise.all(processClubPromises);
    else
    console.log(`empty clubs for timezone $timeZone`);
    Promise.resolve();

    )
    .then(() =>
    response.send('ok');
    )
    .catch((err) =>
    console.error('error:', err);
    response.send(err);
    );
    );



    function processClubPromise(club, database)
    let liveMessages = ;
    let mgr = null;
    return database.ref(`mgrs/$club.mgrId`).once('value')
    .then((mgrData) =>
    mgr = mgrData ? mgrData.val() : null;
    if (mgr)
    return database.ref('messages').orderByChild('statusFilter').equalTo(`$club._id_active`).once('value');
    else
    Promise.resolve();

    )
    .then((liveMessagesData) =>
    liveMessages = liveMessagesData ? liveMessagesData.val() : null;
    if (liveMessages)
    const getPausedMessagesPromises = liveMessages.map((activemessage) =>
    const clubNotice = commonHelpers.clubNoticeConvertor(club, mgr, activemessage);
    return processGetPausedMessages(clubNotice, club);
    );
    return Promise.all(getPausedMessagesPromises);
    else
    Promise.resolve();

    )
    .then((listOfUnreadedmessages) =>
    if (listOfUnreadedmessages)
    const content = emailHelpers.getclubNoticeEmailContent(listOfUnreadedmessages);
    if (content && content.contentLength > 0)
    const params =
    fromEmail: EMAIL_SENDER,
    fromEmailName: 'Statistics email',
    replyTo: EMAIL_SENDER,
    toEmail: club.email,
    subject: `Here is notification`,
    content: content.contentText,
    ;
    const url = `$HOST/sendingMail/`;
    return axios.post(url, qs.stringify(params)).catch((err) =>
    console.error('err in axios', err, url);
    );
    else
    Promise.resolve();

    else
    Promise.resolve();

    )
    .then(() =>
    return database.ref().update(
    [`clubs/$club._id/lastCheckDate`]: new Date().getTime(),
    );
    );



    function processGetPausedMessages(clubEmailNotice, club)
    const
    userId,
    userName,
    = clubEmailNotice;
    return new Promise((resolve, reject) =>
    return smoochAccount.appUsers.getMessages(club.appId, userId)
    .then((message) =>
    const messages = commonHelpers.parseMessages(message, userName);
    const userMessages = messages.filter((message) =>
    return message.role === 'appUser';
    );
    const message = userMessages[userMessages.length - 1];
    if (message)
    resolve(notice: clubEmailNotice, message);
    else
    resolve();

    )
    .catch((err) =>
    reject(err);
    );
    );



    exports.sendingMail = functions.https.onRequest((request, response) =>
    cors(request, response, () =>
    const replyToName = request.body;
    const fromEmail = new sendgridMailHelper.Email(request.body.fromEmail, request.body.fromEmailName);
    const replyTo = replyToName ? new sendgridMailHelper.Email(request.body.replyTo, replyToName) : new sendgridMailHelper.Email(request.body.replyTo);
    const toEmail = new sendgridMailHelper.Email(request.body.toEmail);
    const ccEmail = request.body.ccEmail;
    const subject = request.body.subject;
    const content = new sendgridMailHelper.Content('text/html', request.body.content);
    const mail = new sendgridMailHelper.Mail(fromEmail, subject, toEmail, content);
    mail.setReplyTo(replyTo);

    const sendgridRequest = sg.emptyRequest(
    method: 'POST',
    path: '/v3/mail/send',
    body: mail.toJSON(),
    );

    return sg.API(sendgridRequest).then(() =>
    response.send('ok');
    , (err) =>
    response.send(err);
    );
    );
    );


    Someone said promise is not closed properly, however if it is true why sometimes works well?



    Thank you for any advice. I've spent so much time with this.
    Please save my life. :/










    share|improve this question


























      0












      0








      0








      I made some function to send a notification email to over 20 managers' email address for every 5min using firebase function.



      I used scheduled triggering ( to call checkNotices function ) with cron job. It's not a problem.



      When cron job engine called checkNotices function, sometimes I got an errors like below.



      { Error: read ECONNRESET
      at exports._errnoException (util.js:1020:11)
      at TLSWrap.onread (net.js:580:26)
      code: 'ECONNRESET',
      errno: 'ECONNRESET',
      syscall: 'read',
      config:
      adapter: [Function: httpAdapter],
      transformRequest: '0': [Function: transformRequest] ,
      transformResponse: '0': [Function: transformResponse] ,
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      validateStatus: [Function: validateStatus],
      headers:
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/x-www-form-urlencoded',
      'User-Agent': 'axios/0.16.2',
      'Content-Length': 41877 ,
      method: 'post',
      url: 'https://us-central1-firebase-sending-mail-t3Bd3.cloudfunctions.net/sendingMail/',
      data:
      ...
      (something something..)



      But sometimes it works well,
      it makes me more confused.



      Here is some part of code snippets related function.



      const axios = require('axios');
      const functions = require('firebase-functions');
      const admin = require('firebase-admin');

      exports.checkNotices = functions.https.onRequest((request, response) =>
      const database = admin.database();
      const date = new Date();
      // const hours = date.getHours();
      const timestamp = date.getTime();
      const oneDay = 1 * 1000 * 60 * 60 * 23;
      const timeZone = commonHelpers.getTimeZoneForNotifications(); // it returns like +2, -7, etc.
      database.ref('clubs').orderByChild('timeZone').equalTo(timeZone).once('value')
      .then((clubsData) =>
      let clubs = clubsData ? clubsData.val() : null;
      if (clubs)
      clubs = commonHelpers.idConvertor(clubs);
      clubs = clubs.filter((club) => (timestamp > (club.lastCheckDate + oneDay))));
      );
      const processClubPromises = clubs.map((club) =>
      return processClubPromise(club, database);
      );
      return Promise.all(processClubPromises);
      else
      console.log(`empty clubs for timezone $timeZone`);
      Promise.resolve();

      )
      .then(() =>
      response.send('ok');
      )
      .catch((err) =>
      console.error('error:', err);
      response.send(err);
      );
      );



      function processClubPromise(club, database)
      let liveMessages = ;
      let mgr = null;
      return database.ref(`mgrs/$club.mgrId`).once('value')
      .then((mgrData) =>
      mgr = mgrData ? mgrData.val() : null;
      if (mgr)
      return database.ref('messages').orderByChild('statusFilter').equalTo(`$club._id_active`).once('value');
      else
      Promise.resolve();

      )
      .then((liveMessagesData) =>
      liveMessages = liveMessagesData ? liveMessagesData.val() : null;
      if (liveMessages)
      const getPausedMessagesPromises = liveMessages.map((activemessage) =>
      const clubNotice = commonHelpers.clubNoticeConvertor(club, mgr, activemessage);
      return processGetPausedMessages(clubNotice, club);
      );
      return Promise.all(getPausedMessagesPromises);
      else
      Promise.resolve();

      )
      .then((listOfUnreadedmessages) =>
      if (listOfUnreadedmessages)
      const content = emailHelpers.getclubNoticeEmailContent(listOfUnreadedmessages);
      if (content && content.contentLength > 0)
      const params =
      fromEmail: EMAIL_SENDER,
      fromEmailName: 'Statistics email',
      replyTo: EMAIL_SENDER,
      toEmail: club.email,
      subject: `Here is notification`,
      content: content.contentText,
      ;
      const url = `$HOST/sendingMail/`;
      return axios.post(url, qs.stringify(params)).catch((err) =>
      console.error('err in axios', err, url);
      );
      else
      Promise.resolve();

      else
      Promise.resolve();

      )
      .then(() =>
      return database.ref().update(
      [`clubs/$club._id/lastCheckDate`]: new Date().getTime(),
      );
      );



      function processGetPausedMessages(clubEmailNotice, club)
      const
      userId,
      userName,
      = clubEmailNotice;
      return new Promise((resolve, reject) =>
      return smoochAccount.appUsers.getMessages(club.appId, userId)
      .then((message) =>
      const messages = commonHelpers.parseMessages(message, userName);
      const userMessages = messages.filter((message) =>
      return message.role === 'appUser';
      );
      const message = userMessages[userMessages.length - 1];
      if (message)
      resolve(notice: clubEmailNotice, message);
      else
      resolve();

      )
      .catch((err) =>
      reject(err);
      );
      );



      exports.sendingMail = functions.https.onRequest((request, response) =>
      cors(request, response, () =>
      const replyToName = request.body;
      const fromEmail = new sendgridMailHelper.Email(request.body.fromEmail, request.body.fromEmailName);
      const replyTo = replyToName ? new sendgridMailHelper.Email(request.body.replyTo, replyToName) : new sendgridMailHelper.Email(request.body.replyTo);
      const toEmail = new sendgridMailHelper.Email(request.body.toEmail);
      const ccEmail = request.body.ccEmail;
      const subject = request.body.subject;
      const content = new sendgridMailHelper.Content('text/html', request.body.content);
      const mail = new sendgridMailHelper.Mail(fromEmail, subject, toEmail, content);
      mail.setReplyTo(replyTo);

      const sendgridRequest = sg.emptyRequest(
      method: 'POST',
      path: '/v3/mail/send',
      body: mail.toJSON(),
      );

      return sg.API(sendgridRequest).then(() =>
      response.send('ok');
      , (err) =>
      response.send(err);
      );
      );
      );


      Someone said promise is not closed properly, however if it is true why sometimes works well?



      Thank you for any advice. I've spent so much time with this.
      Please save my life. :/










      share|improve this question
















      I made some function to send a notification email to over 20 managers' email address for every 5min using firebase function.



      I used scheduled triggering ( to call checkNotices function ) with cron job. It's not a problem.



      When cron job engine called checkNotices function, sometimes I got an errors like below.



      { Error: read ECONNRESET
      at exports._errnoException (util.js:1020:11)
      at TLSWrap.onread (net.js:580:26)
      code: 'ECONNRESET',
      errno: 'ECONNRESET',
      syscall: 'read',
      config:
      adapter: [Function: httpAdapter],
      transformRequest: '0': [Function: transformRequest] ,
      transformResponse: '0': [Function: transformResponse] ,
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      validateStatus: [Function: validateStatus],
      headers:
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/x-www-form-urlencoded',
      'User-Agent': 'axios/0.16.2',
      'Content-Length': 41877 ,
      method: 'post',
      url: 'https://us-central1-firebase-sending-mail-t3Bd3.cloudfunctions.net/sendingMail/',
      data:
      ...
      (something something..)



      But sometimes it works well,
      it makes me more confused.



      Here is some part of code snippets related function.



      const axios = require('axios');
      const functions = require('firebase-functions');
      const admin = require('firebase-admin');

      exports.checkNotices = functions.https.onRequest((request, response) =>
      const database = admin.database();
      const date = new Date();
      // const hours = date.getHours();
      const timestamp = date.getTime();
      const oneDay = 1 * 1000 * 60 * 60 * 23;
      const timeZone = commonHelpers.getTimeZoneForNotifications(); // it returns like +2, -7, etc.
      database.ref('clubs').orderByChild('timeZone').equalTo(timeZone).once('value')
      .then((clubsData) =>
      let clubs = clubsData ? clubsData.val() : null;
      if (clubs)
      clubs = commonHelpers.idConvertor(clubs);
      clubs = clubs.filter((club) => (timestamp > (club.lastCheckDate + oneDay))));
      );
      const processClubPromises = clubs.map((club) =>
      return processClubPromise(club, database);
      );
      return Promise.all(processClubPromises);
      else
      console.log(`empty clubs for timezone $timeZone`);
      Promise.resolve();

      )
      .then(() =>
      response.send('ok');
      )
      .catch((err) =>
      console.error('error:', err);
      response.send(err);
      );
      );



      function processClubPromise(club, database)
      let liveMessages = ;
      let mgr = null;
      return database.ref(`mgrs/$club.mgrId`).once('value')
      .then((mgrData) =>
      mgr = mgrData ? mgrData.val() : null;
      if (mgr)
      return database.ref('messages').orderByChild('statusFilter').equalTo(`$club._id_active`).once('value');
      else
      Promise.resolve();

      )
      .then((liveMessagesData) =>
      liveMessages = liveMessagesData ? liveMessagesData.val() : null;
      if (liveMessages)
      const getPausedMessagesPromises = liveMessages.map((activemessage) =>
      const clubNotice = commonHelpers.clubNoticeConvertor(club, mgr, activemessage);
      return processGetPausedMessages(clubNotice, club);
      );
      return Promise.all(getPausedMessagesPromises);
      else
      Promise.resolve();

      )
      .then((listOfUnreadedmessages) =>
      if (listOfUnreadedmessages)
      const content = emailHelpers.getclubNoticeEmailContent(listOfUnreadedmessages);
      if (content && content.contentLength > 0)
      const params =
      fromEmail: EMAIL_SENDER,
      fromEmailName: 'Statistics email',
      replyTo: EMAIL_SENDER,
      toEmail: club.email,
      subject: `Here is notification`,
      content: content.contentText,
      ;
      const url = `$HOST/sendingMail/`;
      return axios.post(url, qs.stringify(params)).catch((err) =>
      console.error('err in axios', err, url);
      );
      else
      Promise.resolve();

      else
      Promise.resolve();

      )
      .then(() =>
      return database.ref().update(
      [`clubs/$club._id/lastCheckDate`]: new Date().getTime(),
      );
      );



      function processGetPausedMessages(clubEmailNotice, club)
      const
      userId,
      userName,
      = clubEmailNotice;
      return new Promise((resolve, reject) =>
      return smoochAccount.appUsers.getMessages(club.appId, userId)
      .then((message) =>
      const messages = commonHelpers.parseMessages(message, userName);
      const userMessages = messages.filter((message) =>
      return message.role === 'appUser';
      );
      const message = userMessages[userMessages.length - 1];
      if (message)
      resolve(notice: clubEmailNotice, message);
      else
      resolve();

      )
      .catch((err) =>
      reject(err);
      );
      );



      exports.sendingMail = functions.https.onRequest((request, response) =>
      cors(request, response, () =>
      const replyToName = request.body;
      const fromEmail = new sendgridMailHelper.Email(request.body.fromEmail, request.body.fromEmailName);
      const replyTo = replyToName ? new sendgridMailHelper.Email(request.body.replyTo, replyToName) : new sendgridMailHelper.Email(request.body.replyTo);
      const toEmail = new sendgridMailHelper.Email(request.body.toEmail);
      const ccEmail = request.body.ccEmail;
      const subject = request.body.subject;
      const content = new sendgridMailHelper.Content('text/html', request.body.content);
      const mail = new sendgridMailHelper.Mail(fromEmail, subject, toEmail, content);
      mail.setReplyTo(replyTo);

      const sendgridRequest = sg.emptyRequest(
      method: 'POST',
      path: '/v3/mail/send',
      body: mail.toJSON(),
      );

      return sg.API(sendgridRequest).then(() =>
      response.send('ok');
      , (err) =>
      response.send(err);
      );
      );
      );


      Someone said promise is not closed properly, however if it is true why sometimes works well?



      Thank you for any advice. I've spent so much time with this.
      Please save my life. :/







      node.js firebase google-cloud-functions axios






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 14 '18 at 8:01









      Doug Stevenson

      78.9k994112




      78.9k994112










      asked Nov 14 '18 at 7:56









      Woojin JeongWoojin Jeong

      274




      274






















          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53295390%2feconnreset-error-while-execute-firebase-function%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53295390%2feconnreset-error-while-execute-firebase-function%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

          Darth Vader #20

          Ondo