Firestore:按文档排列的项目查询

问题描述:

我有一个文档“用户”,其中有一个名为“照片”的键。这是一串保存的字符串,即“照片”文档的ID。Firestore:按文档排列的项目查询

我想通过这个“照片”字段查询“用户”:我希望在“照片”属性中拥有此ID的所有用户。

这可能通过firestore?

不幸的是,现在还没有,尽管它在我们的路线图上。

在此期间,你需要使用地图,而不是在形式:

photos: { 
    id1: true 
    id2: true 
} 

现在,您可以通过photos.id1 == true过滤找到ID1的所有用户。

了解更多关于在Firebase documentation中查询此类套件的信息。

+4

这个路标是否在某处出版?只是好奇。 –

+0

它不是。我们通常不会谈论未来的功能,因为事情可能会突然出现改变优先级(甚至可行性)。 –

+2

@DanMcGrath此功能/路线图是否有更新? –

这里是有点在回答一些扩张似乎混淆不必进行索引每个键,公司的FireStore已经索​​引的简单查询数据。因此,你可以像

documentReference.where('param','==','value').onSnapshot(...) 
一个简单的查询

但您不能执行复合查询,除非您将这些参数的数据编入索引。所以,你需要索引能够做这样的事情:

documentReference.where('param','==','value').where(..otherparams...).onSnapshot(...) 

所以只要您需要的照片的ID,你可以将它们保存为

usersCollection :      (a collection) 
    uidA:        (a document) 
     photoField:      (a field value that is a map or object) 
      fieldID1 : true    (a property of the photoField) 
      fieldID2 : true    (a property of the photoField) 
      etc ... 

,你可以简单地查询用户(s),比方说,它们的photoField中的fieldID1不需要在下面形成任何索引和查询。

firestore.doc('usersCollection/uidA').where('photoField.fieldID1','==',true).onSnapshot(...)