Firebase Firestore获取用户相关数据

时间:2018-03-30 11:31:58

标签: javascript firebase google-cloud-firestore

在我的Firestore数据库中,我有两个集合,用户供稿。 Feeds包含有关该字段的数据,如注释,关注者......等。关注者数据类型是一个简单的(字符串)数组。

我的问题是,如何获取关注者数组包含用户ID的每个Feed?除了查询所有Feed之外还有其他方法,并在foreach中选择相关的吗?

2 个答案:

答案 0 :(得分:2)

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

  

虽然Cloud Firestore可以存储数组,但它不支持   查询数组成员或更新单个数组元素。但是,你   仍然可以通过利用其他功能来模拟这种数据   云Firestore。

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

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

答案 1 :(得分:0)

我认为道格·史蒂文森的答案已经过时。您可以使用字段“关注者”来存储用户数组。

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

您可以使用array-contains之类的Array membership运算符来过滤供稿集合。

示例(网络):

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

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