当用户的凭据在后台更改时,如何处理离线数据同步?

时间:2019-02-13 15:16:30

标签: ios firebase google-cloud-firestore mobile-safari

希望每个人都做得很棒!

所以,在这种情况下,我个人已经遇到了这种情况。

我们正在构建一个应用,首先使它脱机。使用Google凭据登录后,该应用即可在离线模式下运行。

基于https://stackoverflow.com/a/46674020/379235的答案,我们没有等待操作在后端解决,这使其可以在脱机模式下工作。

但是后来,有一天,我在笔记本电脑上更改了Google密码(但是任何“社交登录密码”更改都可能发生这种情况)。然后,几个小时后,我以离线模式(在移动设备上)使用我的应用,并在添加数据时显示成功通知。

但是当我上网并重新加载页面时(再次阅读重新加载,因为在Safari中,即使将应用添加到主屏幕,每次轻按都会将其加载为新会话),我什么也没看到,并认为一切都很好,但是不是。

那怎么了?

页面重新加载后,由于安全规则不允许Firestore读取/写入数据,Firestore无法访问。

以此,作为用户,我的交易丢失了,而我却一无所知。另外,当将本地数据写入后端时发生Firestore异常时,作为应用程序开发人员,我也失去了那些本应存储在后端的未决事务的访问权限。

重申一下,发生的操作顺序是

  1. 用户来到该应用并在其移动应用上添加到主屏幕。
  2. 用户使用Google登录名登录该应用程序(他们也可以选择使用Facebook和Twitter进行登录)。该应用程序在后台使用Firebase Auth。
  3. 用户离线。
  4. 用户继续添加数据,应用显示成功通知(基于本地写入,此处提供指导)
  5. 用户可以在其他设备上访问网络并更改其Google密码(这与他们在第2步中使用的Google登录名相同)
  6. 用户继续以离线模式使用该应用程序并添加更多数据。 用户重新上网并点击应用程序图标(在iOS Safari中,这是页面重新加载)。
  7. 用户发现他们的数据未同步到服务器。
  8. 步骤7发生在幕后-
    • Firestore尝试同步数据,但未能遵循安全规则(因为发生了第5步)。
    • 该异常记录在控制台上,并且该应用程序无法访问应该同步到后端的待处理数据。

有了这个,我的问题就在后面

  1. 当用户在脱机模式下使用某个应用程序但其密码(Google,Facebook,Twitter)已更改(用于登录该应用程序)时,该如何处理?
  2. 一旦他们使用更改后的凭据再次登录到应用程序,如何保存他们的数据并与后端同步?

谢谢

0 个答案:

没有答案