多个用户文档中相同重复字段的Firebase索引

时间:2019-06-03 16:11:02

标签: typescript google-cloud-firestore

我正在尝试为Firestore中的用户构建预订日历,但不想为每个用户事件“ _timeStamp”字段和“ _service”创建索引。

路径/ _sharedData / _calendars / userID / eventID

var cal = db.collection("sharedData").doc("calendars").collection(userID);

var query = cal.where("_service", "==", _myService)
.where("_timeStamp", ">", _dStart)
.where("_timeStamp", "<", _dEnd)
.limit(200)
.get()

我能看到的唯一可行的解​​决方法是,如果我将所有用户事件放入同一集合中,删除了userID,然后对其进行查询,但我可能会达到1mb的集合限制。

路径/ _calendars / eventID

var cal = db.collection("calendars");

var query = cal.where("_userID", "==", _myUser)
.where("_service", "==", _myService)
.where("_timeStamp", ">", _dStart)
.where("_timeStamp", "<", _dEnd)
.limit(200)
.get()

1 个答案:

答案 0 :(得分:1)

我认为您误解了1MB限制的含义。 1MB的唯一documented limit适用于单个文档的最大大小。集合中可以容纳几乎无限数量的文档,并且只要创建了索引,就可以高效地查询所有文档。您的第二种方法应该没问题。