Как я могу исправить Firestore SDK, нажимая «Внутренняя ошибка на сервере проиндексированной базы данных» на iOS? - PullRequest
1 голос
/ 07 июня 2019

В моем веб-приложении Firestore иногда возникает следующая ошибка на iOS:

@ firebase / firestore: Firestore (5.5.0): ВНУТРЕННЯЯ НЕПРАВИЛЬНАЯ ОШИБКА: на сервере индексированной базы данных обнаружена внутренняя ошибка

Что вызывает это и как я могу это исправить?

1 Ответ

4 голосов
/ 07 июня 2019

Это связано с ошибкой в ​​версиях iOS> = 12.2 и <13. Подробнее см. <a href="https://bugs.webkit.org/show_bug.cgi?id=197050" rel="nofollow noreferrer">https://bugs.webkit.org/show_bug.cgi?id=197050.Ошибка может возникнуть, когда страница или приложение возвращаются на передний план после того, как некоторое время находились в фоновом режиме.При возникновении ошибки IndexedDB остается в непригодном для использования состоянии, в результате чего SDK Firestore генерирует упомянутую ошибку и также становится непригодным для использования.

Единственный способ избежать ошибки - отключить сохранение.Если требуется включить сохранение, единственный способ потенциально восстановить - это перехватить ошибку с помощью глобального обработчика window.onerror и, например, обновить страницу:

window.onerror = function(error) {
  if (error.indexOf("An internal error was encountered in the Indexed Database server") >= 0) {
    // Refresh the page to restore IndexedDb to a working state.
    window.location.reload();
  }
};

Дополнительный контекст: https://github.com/firebase/firebase-js-sdk/issues/1670

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...