从firebase JS SDK(Web)迁移到反应式 - 网络底线,以进行离线存储



我一直在使用Firebase Web SDK作为我的React-Native应用程序(我正在使用Firestore来存储数据(。到目前为止,我没有任何问题。一切都可以顺利进行。但是现在,我想在我的应用程序中添加某种离线存储机制,以便我仍然可以提供一些功能或显示一些从上次连接的会话中缓存的内容,即使我的用户离线也是如此。经过一番调查,我的印象是反应新的循环底碱是首选的方法。现在我有一些问题,我想从经验丰富的人那里获得一些建议。

  • React-Native-Firebase是唯一的选择吗?我已经迅速阅读了有关异步的信息,它只是一个键值存储。考虑到我想做的最简单的事情就是通过Firestore文档列表进行页面,这种存储似乎不适合脱机。就像我想用异步构成这样做,我必须将所有内容(也许是数百个文档(放在我的Firestore后端中,将它们坚持为单个字符串值,将它们拿回去,解析它们,页面等等,页面等等。编写自定义逻辑&所有这些方法。
  • 如果我要使用React-Native-Firebase,只需启用离线存储 - 我假设 - 为您照顾它,而您不必为离线存储使用来编写任何自定义逻辑。我假设在离线使用情况下持续存在的数据具有与Firestore数据库中相同的结构。我觉得,如果我除了反应新的 - 循环基础外使用了其他任何东西,我将不得不处理所有自定义逻辑,以保持自己的持续,阅读和渲染数据。是的吗?
  • 我最关心的是可能需要的代码重构数量。我有很多代码行,也有很多.get().then(),例如我获得并从Firestore渲染数据的行。在反应新的文档的文档中,它说:

...旨在像 可能。

我不确定这是真的。我已经检查了React-Native-Firestore的Firestore模块的参考文档,但我无法分辨实际上支持其中有多少个查询方法。

那么,要走的方法是反应 - 局部的方式吗?试图重构现有代码会给我带来巨大的损失吗?您有类似的经历吗?我将不胜感激任何帮助。

非常感谢...

在此处的反应式库库库维护器。

...旨在尽可能紧密地镜像官方的Firebase Web SDK。

这是一个较小的免责声明,因为两者之间存在一些差异,主要是如何用React Native实施某些事情。

例如,RNFB上不存在enablePersistence。相反,默认情况下启用持久性,可以通过settings()进行切换(或ON(。

React-Native-Firebase是唯一的选择吗?我已经迅速阅读了有关异步的信息,它只是一个键值存储。考虑到我想做的最简单的事情就是通过Firestore文档列表进行页面,这种存储似乎不适合脱机。就像我想用异步构成这样做,我必须将所有内容(也许是数百个文档(放在我的Firestore后端中,将它们坚持为单个字符串值,将它们拿回去,解析它们,页面等等,页面等等。编写自定义逻辑&所有这些方法。

从技术上讲这是可能的,但是您提到的是不利的。使用Firestore,当设备离线时(在应用程序上很常见(时,您尝试读取/编写它将读取/更新您的本地缓存,这仍然会触发事件侦听器。当应用返回在线时,它将自动与您的服务器重新同步。

如果我要使用React-Native-Firebase,只需启用离线存储即可 - 我假设 - 为您照顾它,而您不必为离线存储使用来编写任何自定义逻辑。我假设在离线使用情况下持续存在的数据具有与Firestore数据库中相同的结构。我觉得,如果我除了反应新的 - 循环基础外使用了其他任何东西,我将不得不处理所有自定义逻辑,以保持自己的持续,阅读和渲染数据。是的吗?

这一切都为您服务。我们围绕本机firebase SDK包裹,所以如果不使用React Antial的本机Android/ios应用程序,请期待相同的一致性。

我最关心的是可能需要的代码重构量。我有很多代码行,还有很多.get((。然后((像我从firestore获取数据的行。

通常,由于上述原因,除了几种次要方法外,一切都相同。

那么,要走的方法是反应 - 局部的方式吗?试图重构现有代码会给我带来巨大的损失吗?您有类似的经历吗?我将感谢任何帮助。

我建议任何与React Native&使用RNFB的firebase。它提供了Web SDK无法与React Anitial提供的许多额外功能。除了更麻烦的设置更改导入,它应该工作非常相同。

最新更新