如何解决Vue和Firebase:数据意外复制状态
我有两个对Firebase的调用:一个用于获取现有数据,另一个用于侦听数据中的更新。当这些更新发生时,由于某种原因而不是替换现有数据,我看到将两个数据集加在一起。无法确定原因,因为我在第二个函数中直接用新数据更新状态。
以下是在Mounted()上调用的函数:
log_id
以及有问题的两个功能
_id
解决方法
在没有彻底测试代码的情况下很难准确地告诉您正在发生的事情,但是必须注意,两个调用(对getImages()
和refreshImages()
的调用可能无法按照您期望的顺序进行。 / p>
由于您在getImages()
中将数据推送到picturesData
,并且在refreshImages()
中您替换了 picturesData
,怀疑通过refreshImages()
设置的侦听器在获得getImages()
触发的查询结果之前返回了数据。
实际上,由于onSnapshot()
会触发返回查询的整个结果的初始调用,因此您只需要调用refreshImages()
(不需要初始调用到getImages()
)。
请注意,onSnapshot()
不是像get()
这样的异步方法,因此您无需使refreshImages()
异步。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。