Firebase Firestore: globally detect when there are pending writes

Viewed 81

I've got a simple requirement to show a warning to the user if they leave the browser window while a pending write is happening in Firestore using a beforeunload listener:

window.addEventListener('beforeunload', e => {
  if (NO_PENDING_SAVES) return;      

  e.preventDefault();
  e.returnValue =
    'Your changes are still being saved. Are you sure you want to leave?';
}, {
  capture: true,
});

In Firestore using the Web SDK, how do I detect whether there are pending saves or not globally? There is a waitForPendingWrites() method on the Firestore object, but it would require polling and it's also asynchronous, so it won't work inside of beforeunload.

0 Answers
Related