【问题标题】:Firebase - Change data before being sent from cache to serverFirebase - 在从缓存发送到服务器之前更改数据
【发布时间】:2020-08-19 12:53:45
【问题描述】:

我在使用 Swift 开发的聊天应用程序中使用 Firebase。我启用了离线持久性,所以通常每个查询都会先缓存然后发送到服务器。我想要做的是,在发送消息时,首先将消息状态设置为“Sending”并将时间设置为当前时间,但是当数据发送到服务器时,将状态更改为“Sent”并将时间设置为发送数据的时间(因为如果连接速度慢或根本没有连接,可能需要几分钟)。这可以使用 Firebase 吗?如果没有,有什么解决方法吗?提前致谢!

【问题讨论】:

  • Firebase 有两个数据库:实时数据库和 Cloud Firestore。你用的是哪一个?
  • 云火存储。

标签: swift firebase google-cloud-firestore


【解决方案1】:

在 Cloud Firestore 中,您可以通过以下方式检测写入操作的状态:

  1. 将完成侦听器附加到写入操作
  2. 查看文档快照的元数据

第一步,请查看文档中writing a document 的示例。那里的完成侦听器允许您检测写入操作何时完成。

但是,如果您想在 UI 中显示每个文档是否有尚未在服务器上提交的挂起写入,您最好查看每个文档快照的元数据。如events for local changes 中的文档所述。当更改未决时,snapshot.getMetadata().hasPendingWrites() 将返回 true。然后在服务器上提交更改后,它将再次返回false

【讨论】:

    猜你喜欢
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 2011-11-13
    相关资源
    最近更新 更多