【问题标题】:How to update the Information of publisher stored in firestore, and using a flutter app如何更新存储在firestore中的发布者信息,以及使用flutter应用程序
【发布时间】:2020-12-19 23:07:09
【问题描述】:

我正在设计一个 Flutter 应用,用户可以在其中根据自己的经验发表文章。出版物存储在名为“出版物”的 Firestore 集合中。此集合包含出版内容、出版商名称、出版日期以及出版商的个人资料图片。此集合中的所有信息都将用于创建美观的 UI。现在,我有另一个名为“用户”的集合,其中包含用户的个人信息,例如他们的出生日期、电子邮件、姓名和个人资料图片。我现在的问题是,如果我的用户决定要更改他们的个人资料图片或姓名,我可以在“用户”集合中更改他们的姓名,但是我应该怎么做才能确保当个人资料图片更改时,所有“出版物”集合中存储的用户出版物也有更新的图片?

此外,我将发布者的名称和个人资料图片同时存储在出版物集合和用户集合中的原因是,我不希望我的应用程序只读取 1 个出版物而进行 2 次读取,因为每个读取成本 6 美分,读取 2 次只是我为 firebase 服务支付的费用的两倍。

任何帮助将不胜感激!

【问题讨论】:

  • 我不确定您从哪里得到读取成本为 2 美分的想法。使用 Firestore,每 100,000 次读取的读取成本为 6 美分。这只是每次阅读的一小部分。

标签: firebase google-cloud-firestore


【解决方案1】:

您的方案可能在配置文件数据不改变的情况下优化了读取,但您为它确实改变的情况引入了新的成本。

如果您在多个文档中复制了此类数据,并且想要更新所有这些文档,则必须:

  1. 查询所有需要更改的文档
  2. 迭代结果,并针对每个文档
  3. 更新它以提供新值

这没有捷径可走。 Firestore 不提供在一个查询中更新多个文档的类似 SQL 的“update where”类型子句。

【讨论】:

  • 您实际上是对的,它是每 100k 6 美分,我认为误读了定价。谢谢你的回答
  • 顺便说一句,您是否有更好的方法可以用来优化和降低流程成本?
  • 对于像 Firestore 这样基于使用量计费的产品,您需要根据预期的用户行为来计算。从来没有一种真正的做事方式最适合所有情况。
  • 明白。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-07
  • 2019-06-14
  • 2015-07-25
  • 2017-04-06
  • 1970-01-01
  • 2014-08-28
相关资源
最近更新 更多