【问题标题】:How to persist data locally with firebase realtime database in react native?如何在本机反应中使用firebase实时数据库在本地保存数据?
【发布时间】:2020-01-01 11:30:06
【问题描述】:

我是移动开发的新手,我正在为 Android 设备构建一个原生反应的手机游戏,我想在其中存储以用户为中心的信息,例如在 firebase 的实时数据库中不同级别的分数。我的用户将在受限的互联网连接中玩游戏(用户在几天内连接到互联网一次),我想要一种机制,即使应用程序“重新启动”或应用程序被用户杀死以及何时杀死,应用程序也应该在本地存储数据互联网连接来了,应该可以推送服务器上的所有数据。

我有两个问题:

  1. 在建立互联网连接后,我能否在不打开应用程序的情况下自动将数据发送到服务器?

  2. 我发现支持在 Java 和 kotlin 中为 Android 重新启动应用程序或操作系统时启用离线数据持久性 (https://firebase.google.com/docs/database/android/offline-capabilities),但没有找到对本机反应的支持。我已经阅读了 React Native Firebase 库 (https://rnfirebase.io/docs/v5.x.x/database/reference/database) 的文档,但确实找到了在应用程序/操作系统重新启动时启用数据持久性选项的选项。有什么解决方法吗?

【问题讨论】:

  • 该文档是指离线功能,用于在用户下线和上线时检测和管理任务。当用户杀死移动应用程序时,它没有说明数据持久性。

标签: firebase react-native firebase-realtime-database react-native-android expo


【解决方案1】:

您正在寻找的是Cloud Firestore,它具有内置的数据持久性,因此您不必担心。使用react-native-firebase,它有一个非常漂亮的文档和指南,社区也非常有帮助。

  1. 要在无需用户打开应用程序的情况下将本地数据与服务器同步,您需要深入研究本机端并制作一个在后台运行并定期检查互联网连接的 Android Service。连接互联网后,即可启动Cloud Firestore 同步。
  2. 不要为此使用Realtime Database。使用Cloud Firestore 会更好。

【讨论】:

  • react-native-firebase 的 Cloud Firestore api 是否支持使用 react-native 离线持久化而不编写原生 java 代码?我看到 react-native-firebase 的实时数据库 api 只支持使用本机代码的离线持久性。 rnfirebase.io/docs/v4.0.x/core/…
  • 是的。它默认启用。
  • @thecodrr 您能否提供任何示例,当用户上线时本地数据会同步,即使用户在离线时在应用程序上执行某些操作并杀死应用程序也是如此。这些数据也需要推送到firebase。你有这个场景适用的链接/示例吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 2019-08-29
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
相关资源
最近更新 更多