如何解决Firebase-在从缓存发送到服务器之前更改数据
我将Firebase用于我正在使用Swift开发的聊天应用程序。我启用了离线持久性,因此通常每个查询都首先被缓存,然后发送到服务器。我想做的是,在发送消息时,首先将消息状态设置为“正在发送”,将时间设置为当前时间,但是当数据发送到服务器时,将状态更改为“已发送”,并将时间更改为数据发送的时间(因为连接速度慢或根本没有连接可能要花几分钟的时间)。使用Firebase是否可以?如果没有,有什么解决方法?预先感谢!
解决方法
在Cloud Firestore中,您可以通过以下方式检测写入操作的状态:
- 将完成侦听器附加到写操作
- 查看文档快照的元数据
首先,请查看文档中的writing a document示例。在那里的完成侦听器使您能够检测到写操作何时完成。
但是,如果要在UI中显示每个文档,请显示它是否有尚未提交的未决写在服务器上,那么最好查看每个文档快照的元数据。如events for local changes中的文档所述。待更改期间,snapshot.getMetadata().hasPendingWrites()
将返回true。然后,将更改提交到服务器后,它将再次返回false
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。