微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Firebase-在从缓存发送到服务器之前更改数据

如何解决Firebase-在从缓存发送到服务器之前更改数据

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

解决方法

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

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

首先,请查看文档中的writing a document示例。在那里的完成侦听器使您能够检测到写操作何时完成。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。