我有一个名为“类别”的集合,其中包含一个 ID 为:5gF5FqRPvdroRF8isOwd 的文档。
我还有另一个名为“门票”的收藏。每张票都有一个参考字段,将票分配给特定类别。
门票集合中的字段称为“类别”,字段类型为 reference
。
在下面的代码中, categoryDocId
是我要查询的类别的文档 ID。
const categoryDocID = `5gF5FqRPvdroRF8isOwd`;
const files = await firebase
.firestore()
.collection('tickets')
.where('category', '==', categoryDocID)
.get();
为什么 files.length
返回0?
为了测试,我将 category
字段类型更改为字符串,并将其设置为类别 ID 而不是直接引用。这正确返回了分配给该类别的票证,这让我相信这是关于我查询 reference
字段的方式。
原文由 jskidd3 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如您将 在 文档中读到的那样,引用数据类型用于存储 DocumentReferences 。
如果要在查询中使用它,则不能使用简单的字符串,既不能是文档的 UID(即
'5gF5FqRPvdroRF8isOwd'
),也不能使用存储在字段中的字符串值(即'/categories/5gF5FqRPvdroRF8isOwd'
)。您必须构建一个 DocumentReference 并在您的查询中使用它,如下所示:
JS SDK V9
JS SDK V8