如果用户离线执行调查并在没有使用 react-native-firebase 上线的情况下杀死应用,则数据不会被推送到



场景 1:

  1. 打开应用程序
  2. 下线
  3. 执行调查
  4. 确保应用程序没有被杀死并上线
  5. 用户上线后,数据就会推送到 Firebase

场景 2:

  1. 打开应用程序
  2. 下线
  3. 执行调查
  4. 从后台杀死应用程序
  5. 打开应用程序并上线,必须将数据推送到Firebase以进行我们离线执行的调查---这是我面临的实际问题,在这种情况下,数据不会被推送到Firebase db。

要使场景 2 正常工作,如果 Firebase 客户端没有连接到服务器(在 Firebase 客户端中称为磁盘持久性(,则必须将数据写入本地磁盘。然后,当应用重新启动时,它会从磁盘读取数据,并可以重试将其发送到服务器。

由于方案 2 不适合您,因此似乎未启用磁盘持久性。您没有告诉我们/向我们展示您正在使用哪个 Firebase 数据库(Firestore 或实时数据库(。但由于磁盘持久性在Firestore上默认启用,因此我假设它是实时数据库。若要了解如何在此处启用磁盘持久性,请参阅 https://invertase.io/oss/react-native-firebase/faqs/enabling-database-persistence

只需执行以下操作:

export const syncOfflineDataToFirestore = async () => {
const docRef = await firebase
.firestore()
.collection('singledoc-per-device')
.doc(`doc_name`)
await docRef.get()
}

在最初启动应用的顶部组件之一中调用上述函数。这将自动将所有记录推送到 firebase。它有点棘手,但工作正常。

相关内容

  • 没有找到相关文章

最新更新