如何修复Firestore SDK在iOS上出现“在索引数据库服务器中遇到内部错误”错误?

时间:2019-06-07 14:31:57

标签: firebase google-cloud-firestore

我的Firestore网络应用有时在iOS上遇到以下错误:

  

@ firebase / firestore:Firestore(5.5.0):内部错误:在索引数据库服务器中遇到内部错误

是什么原因造成的,我该如何解决?

1 个答案:

答案 0 :(得分:4)

这是由于iOS版本> = 12.2和<13中的错误所致。有关详细信息,请参见https://bugs.webkit.org/show_bug.cgi?id=197050。当页面或应用程序在后台运行一段时间后返回到前台时,可能会发生该错误。发生错误时,IndexedDB处于不可用状态,导致Firestore SDK生成上述错误,并且也变得不可用。

避免错误的唯一方法是禁用持久性。如果您需要启用持久性,则唯一可能恢复的方法是使用全局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