在Firestore中更改特定值时,如何有效地更新收集文档?

时间:2019-06-21 18:41:49

标签: swift firebase google-cloud-firestore

我有2个收藏集。其中一个名为“ USERS”,另一个名为“ MATCHES”。 USERS,可以加入比赛,显示已加入比赛的用户的化身。问题在于,当用户加入比赛后更改其头像图像时,比赛头像不会更改,因为比赛中包含旧的头像。

该头像在Firestore中另存为Base64,但不久后我会将其更改为“存储”。

我一直在尝试设置参考,但这仅给了我路径。

如果我必须为加入用户的每个匹配项进行一次数据库Api调用,也许我必须进行20个Api调用以更新匹配项。这可能是一个解决方案,但不是最好的。

解决方案也许在Google Functions中? 我没主意了。

1 个答案:

答案 0 :(得分:0)

  

也许解决方案在Google Functions中?

Cloud Functions还通过SDK访问Firestore,因此它们无法神奇地执行SDK不允许的操作。

如果要复制数据并更新其中一个重复项,则必须考虑更新其他重复项。如果它们都需要更新,则确实需要为每个重复项单独调用。

如果您不想这样做,请不要存储重复的数据。

有关更新重复数据的策略的更多信息,请参见How to write denormalized data in Firebase