【问题标题】:Firestore and flutter: update documents when a field is nullFirestore和flutter:当字段为空时更新文档
【发布时间】:2021-05-17 09:47:49
【问题描述】:

我有一个代表可用运动比赛列表的集合(见下图,意大利文本抱歉)。 每个文档都是一个匹配项,并且有一个订阅该匹配项的玩家列表(id_player1、id_player2 等)。

当有人想订阅那场比赛时,我必须循环遍历players_id,当我找到一个null时,我将它设置为用户的id。

所以我的问题是:

  • 如何循环浏览文档的字段并检查它们是否为空?
  • 如何计算有多少字段不为空,所以当这个计数等于 X 时,我做点什么?

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    您决定定义 6 个不同的字段来存储玩家 id.. 所以您不能循环这些字段.. 您可以做的是获取所有六个字段并一一检查它们是否为空...

    您应该做的是重构该逻辑并将玩家 ID 存储在集合中。仅当集合的数量低于 6 时才更新集合,这样您就不必检查是否还有剩余空间来添加玩家 ID

    再见:D

    【讨论】:

      【解决方案2】:

      如果每个单独的 id_player* 字段没有特定含义,请考虑将所有玩家 ID 存储在单个 player_ids 数组字段中。

      这样您就可以use arrayUnion 向字段添加值(防止重复)和query with array_contains 以查找具有特定玩家 ID 的文档。

      【讨论】:

      • 使用数组和子集合有什么区别/好处?感觉使用数组比使用集合要容易得多
      猜你喜欢
      • 1970-01-01
      • 2020-02-11
      • 2021-09-15
      • 1970-01-01
      • 2021-12-14
      • 2019-03-21
      • 2019-08-14
      • 2021-12-04
      • 1970-01-01
      相关资源
      最近更新 更多