gpt4 book ai didi

firebase - 当 Firebase 节点同步时,是将完整的新值发送到服务器还是仅发送差异值?

转载 作者:行者123 更新时间:2023-12-02 19:02:43 25 4
gpt4 key购买 nike

当通过诸如 ref.on('value', ...) 之类的回调更新对象时,它的工作方式是否相同?

我尝试在 Chrome 开发工具中自行解决这个问题,但未能成功。

这对我来说很重要,因为我正在开发一个用户可能会存储大量文本的应用程序。如果仅通过网络发送差异,那么它会更轻量级,并且我可以更频繁地同步。如果发送完整值,我不想这样做。

最佳答案

写入数据时,Firebase 服务器当前会将所有写入的数据发送到服务器。如果您编写一个大对象,然后再次使用同一对象重写整个对象,则整个对象将通过线路发送(这可能会在将来发生变化,但这是当前的实现)。

当从服务器将数据发送回其他客户端时,我们做了一些优化,并且不传输一些重复的数据。

Firebase 旨在让您能够精细地访问数据。我强烈建议您关注正在更改的数据并仅更新相关部分。例如:

//inefficient method:
ref.set(HUGE_BLOCK_OF_JSON);

//efficient method:
ref.child("a").child("b").child("c").set(SOME_SMALL_PIECE_OF_DATA);

当您寻址到一段数据时,只有那一小段数据会被传输并重新广播给其他客户端。

Firebase 专为真正的实时应用而设计,一旦数据发生变化就会立即进行更新。如果您发现自己出于性能原因故意缓存更改一段时间并将它们保存为大块,那么您可能应该分解数据并只写入相关部分。

关于firebase - 当 Firebase 节点同步时,是将完整的新值发送到服务器还是仅发送差异值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14288008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com