Fra*_*áez 9 firebase google-cloud-firestore
注意:Cloud Firestore目前不支持跨子集查询.如果需要跨集合查询数据,请使用根级集合.
当我为我阅读文档时,不清楚是否可以这样做:
var listsRef = db.collection("users/user1/lists");
var query = listsRef.where("public", "==", true);
Run Code Online (Sandbox Code Playgroud)
我可以理解,如果我尝试这样做,它就不受支持:
var listsRef = db.collection("users/{userId}/lists");
var query = listsRef.where("public", "==", true);
Run Code Online (Sandbox Code Playgroud)
但我想知道我是否可以查询来自特定文档的特定集合.事实上,这里和根集合有什么区别?
提前致谢.
Tom*_*ley 10
只要您知道它所属的文档,您就可以查询子集合.例如,以下是有效的子集合查询:
const usersCollection = firestore.collection("users");
const adminDocument = usersCollection.doc("admin");
const adminsFollowersQuery = adminDocument.collection("followers").where("name", "==", "Arthur Dent");
adminsFollowersQuery.get().then((adminsFollowers) => {
adminsFollowers.docs.forEach((adminFollower) => {
console.log(adminFollower.get("name"));
});
});
Run Code Online (Sandbox Code Playgroud)
正如您所指出的,以下内容目前无效:
const allUserFollowersQuery = firestore.collection("users/{wildcard}/followers")
.where("name", "==", "Arthur Dent");
adminsFollowersQuery.get().then((allUserFollowers) => {
allUserFollowers.docs.forEach((follower) => {
console.log(follower.get("name"));
});
});
Run Code Online (Sandbox Code Playgroud)
我认为这里的文档有点令人困惑,但是通过"查询子集合"它们意味着,您可以查询特定的子集合,如上所述,但是您无法查询常规子集合.至少不是使用FireStore SDK的单个操作.
Firebase 现在支持查询子集合(截至 2019 年 5 月)。
你可以这样做
db.collectionGroup("lists").where("public", "==", true)
Run Code Online (Sandbox Code Playgroud)
这将为lists所有用户返回匹配的文档。
| 归档时间: |
|
| 查看次数: |
9413 次 |
| 最近记录: |