【问题标题】:Firebase Firestore get user related dataFirebase Firestore 获取用户相关数据
【发布时间】:2018-03-30 11:31:57
【问题描述】:

在我的 Firestore 数据库中,我有两个集合,usersfeeds。 Feeds 包含有关字段的数据,如 cmets、followers... 等。followers 数据类型是一个简单的(字符串)数组。

我的问题是,我怎样才能获得关注者数组包含用户 ID 的每个提要?除了查询所有提要并在 foreach 中选择相关提要之外,还有其他方法吗?

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    无法根据数组字段的内容查询文档。来自documentation

    虽然 Cloud Firestore 可以存储数组,但不支持 查询数组成员或更新单个数组元素。然而,你 仍然可以通过利用其他功能对此类数据进行建模 Cloud Firestore。

    如果您只想查询具有特定关注者的字段,则应使用对象字段而不是数组。

    同一页的文档继续描述将数组转换为对象的策略。如果用户关注该提要,该对象会将用户 ID 映射到布尔值 true

    【讨论】:

      【解决方案2】:

      我认为 Doug Stevenson 的回答已经过时了。您可以使用“关注者”字段来存储用户数组。

      feeds: { 
        ...
        followers: ['user_id_1', 'user_id_2', 'user_id_3']
      }
      

      您可以使用Array membershiparray-contains 运算符来过滤提要集合。

      示例(网络):

      feedsRef.where("followers", "array-contains", "user_id_1")
      

      您还可以根据需要使用inarray-contains-any 运算符。

      【讨论】:

        猜你喜欢
        • 2018-11-06
        • 1970-01-01
        • 1970-01-01
        • 2020-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-25
        相关资源
        最近更新 更多