Javascript 我可以阅读文档中的子集合和文档而不单独阅读吗?

Javascript 我可以阅读文档中的子集合和文档而不单独阅读吗?,javascript,reactjs,firebase,react-native,google-cloud-firestore,Javascript,Reactjs,Firebase,React Native,Google Cloud Firestore,我读过Firestore的一份文件。但是,此文档包含一个子集合(会话),其中包含许多文档。有没有办法读取文档及其子集合和子文档?把它们存放在州里? 目前,我只能看到已读文档的元素,而没有它的子集合和子文档。 谢谢您可以使用以下查询语法访问文档的子集合:dbh.collection('Groups/{groupId}/users') 其中,{groupId}将是您的文档,用户将是子集合 然后可以将其存储在该组的状态中 有没有办法读取文档及其子集合和子文档 单凭一个查询是不可能的。您必须分别查询每个

我读过Firestore的一份文件。但是,此文档包含一个子集合(会话),其中包含许多文档。有没有办法读取文档及其子集合和子文档?把它们存放在州里? 目前,我只能看到已读文档的元素,而没有它的子集合和子文档。
谢谢

您可以使用以下查询语法访问文档的子集合:
dbh.collection('Groups/{groupId}/users')

其中,
{groupId}
将是您的文档,
用户
将是子集合

然后可以将其存储在该组的状态中

有没有办法读取文档及其子集合和子文档

单凭一个查询是不可能的。您必须分别查询每个子集合

FixStar查询总是浅的,不考虑单个集合之外的文档。一般来说,模式如下:

 componentDidMount(){
    dbh.collection('Groups').get()
    .then(querySnapshot => {
        querySnapshot.forEach(doc => {
            this.setState({
                groups: [...this.state.groups,doc.data()],
            })
        })
    })
}
您可以看到,您必须使用承诺将查询链接在一起,然后在一切可用后设置状态

    dbh.collection('Groups').get()
    .then(querySnapshot => {
        querySnapshot.docs.map(snapshot => {
            return dbh
                .collection('Groups')
                .doc(snapshot.id)
                .collection('whatever')
                .get()
        })
    })
    .then(results => {
        this.setState(...)
    })