gpt4 book ai didi

database - 有效地更新Firestore抖动中的数据并防止多次写入

转载 作者:行者123 更新时间:2023-12-03 04:20:31 24 4
gpt4 key购买 nike

我想尽可能避免将数据写入Firestore并使其高效。用户可以编辑由三个部分组成的配置文件。我目前的方式是,firestore更新存储在一种方法中,即使只更新了一个部分,该方法也会更新所有部分。
我希望这样,如果用户仅编辑一个部分,则仅在Firestore中进行更新。
我的密码

    await firestoreInstance
.collection("users")
.document(firebaseUser.uid)
.updateData({
"images": _imagesUrl,
"name": firstNameController.text,
"biography": biographyController.text,
});

最佳答案

这里的问题是,我们无法知道任何这些字段的当前值。
如果知道当前值,则可以比较当前值和新值,并且仅在它们不相同时才将其发送到数据库。
如果您不知道当前值,那么加载当前值可能比将所有三个字段都直接发送到数据库的开销更大。
原因是Firebase在这种情况下收费:

  • 文档写入-您修改的每个文档都会产生成本,但是该成本并不取决于您在该文档中更新的数据量
  • 文档读取
  • 客户端读取的数据带宽

  • 因此,Firestore不会为您发送到数据库的数据收取带宽费用。因此,虽然仅发送已修改的字段可以节省带宽,但在那方面不会节省Firebase的成本,而必须阅读文档以确定要修改的字段肯定会花费更多。

    关于database - 有效地更新Firestore抖动中的数据并防止多次写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62885989/

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