我的Firestore数据库的组织如下: (col =收藏,doc =文档)
-data (col)
-userid -> random number (doc)
-clients (col)
-clientid -> random number (doc)
-clientid -> random number (doc)
-userid(doc)
-clients (col)
-clientid -> random number (doc)
...
我需要读取特定“ clientid”文档中的所有数据,只是要求用户插入其clientid随机数。
我想知道是否可以像数据库规则那样使用通配符语法读取此数据:
var clientid = "65486649466"
var clientdata = db.collection("data").doc({userid}).collection("clients").doc(clientid);
还是有另一种方法? 谢谢
答案 0 :(得分:0)
Firestore客户端查询中没有通配符。您需要为查询所需的所有集合ID和文档ID提供准确的值。
如果您需要查询整个数据库中所有称为“客户”的子集合(包括嵌套在“数据”下的子集合,以及其他地方),则可以改用collection group query查找这些文档:
const query = db.collectionGroup("clients")
query.get()...
此查询将返回所有名为“ clients”的子集合中的所有文档。不幸的是,您不能基于每个客户文档的文档ID来过滤此查询。为此,您还需要将客户文档ID写入每个文档中的字段。假设您已完成操作,并且字段名称称为“ id”:
const query = db.collectionGroup("clients").where("id", "==", clientid)
query.get()...
这将为您提供“ id”字段为clientid
的所有“客户”子集合文档。