在Firebase中更新同一集合中多个文档中的字段值

时间:2020-04-05 17:50:55

标签: android firebase google-cloud-firestore

我创建了一个聊天应用。该应用程序中有一个名为Chat的集合,并且其中包含文档。每个文档都是已发送的消息,其中包含诸如MessageSentTimeIsButton之类的字段。

一旦应用中发生了某些事情(有人单击按钮),我想在聊天时将所有文档中的IsButton的值从False更改为True

数据如下:

enter image description here

有没有一种方法可以一次更改所有Field值而不是使用循环?

我看到有一个叫做Batch的东西,但是我不确定是否限制为最多500次更新。

谢谢

1 个答案:

答案 0 :(得分:0)

您发现的两种方法几乎都是更新一堆文档的方法。

您可以:

  • 可以分别更新每个文档,这并没有您想象的那么慢。
  • 或者您可以分批更新文档。

必须使用相同的值更新许多文档,这可能表明您应该重新考虑数据结构。例如,也许您可​​以将select th.name home_team ta.name away_team m.result from matches m inner join teams th on th.teamID = m.homeTeamID inner join teams ta on ta.teamID = m.awayTeamID 存储在一个单独的文档中,然后所有客户都可以阅读/收听它们。