当前位置: 首页 > 知识库问答 >
问题:

如何在Firebase FiRecovery中的每个文档的子集合中获取文档?

盛辰沛
2023-03-14

如何使用JavaScript获取Firebase Firestore子集合“userPosts”中的所有文档?你可以在下面的图片中看到我的数据库结构。

以下是我尝试过的:

firebase.auth().onAuthStateChanged(function(user) {

    var postRef = database.collection('posts').doc().collection('userPosts');

    postRef.get().then(snapshot => {
        setupPosts(snapshot.docs)
    })

    const posts = document.querySelector('.posts');

    const setupPosts = (data) => {

        let html = '';
        data.forEach(doc => {
            const post = doc.data();

            console.log(post)

            const li = `
            <li>
                <div class="title">${post.title}</div>
                <div class="content">${post.content}</div>
            </li>
            `;
            html += li
        })

        posts.innerHTML = html;

    }
})

这段代码应该做的是获取子集合“userPosts”中的文档。它应该进入集合“posts”中的每个文档,然后进入“userPosts”并获取该子集合中的每个文档。

第一次收集“帖子”

子集合“userPosts”

共有2个答案

穆飞星
2023-03-14

这一行毫无意义:

var postRef = database.collection('posts').doc().collection('userPosts');

database.collection('post'). doc()post集合中创建对新的、不存在的doc的引用。由于您随后将其userPosts子集合,这当然是要不存在/为空。

如果您想为user参数获取userPosts子集合,并根据用户的UID存储用户,那么应该是:

var postRef = database.collection('posts').doc(user.uid).collection('userPosts');
云凌
2023-03-14

听起来你想要一个集合组查询。这将为您提供名为“userPosts”的所有子集合中的所有文档:

const query = database.collectionGroup("userPosts")
query.get().then(querySnapshot => { ... })
 类似资料:
  • 所以我有一个帖子集。在“post”集合中,我有另一个名为“likes”的集合。 所以我想同时从每个文档中获取每个集合,并在之后映射它们。有没有办法做到这一点? 因为在Firebase中,您只能从一个文档中获取集合,但我想从每个文档中获取每个集合。

  • 我现在有一个firestore,看起来像这样: 我使用的是,我试图获取“报告”集合中的所有文档。 我可以得到一个报告: 但我无法得到整个子集合 这可能吗?我是新手,所以这可能是一个愚蠢的问题。 谢谢 编辑控制台中收到的错误消息是: 我不确定权限,我没有访问权限,但如果是权限问题,我很困惑,我可以从集合中获取一个文档,但找不到获取所有文档的方法

  • 问题内容: 对于我的应用程序而言,至关重要的是能够从Firebase的集合中随机选择多个文档。 由于Firebase(我知道)没有内置本机函数来实现执行此操作的查询,因此我的第一个想法是使用查询游标选择随机的起始索引和终止索引,前提是我拥有​​其中的文档数集合。 这种方法行之有效,但只能以有限的方式进行,因为每次每次文档都会与其相邻文档一起依次送达。但是,如果我能够通过其父集合中的索引选择一个文档

  • 我正在尝试从集合中提取公司列表。现在,除了列表之外,我还想根据集合的_id从集合和中获取每个对应公司的产品和员工列表。这是我正在尝试的代码 但是由于某种原因,上面的代码在products_array和employees_array中返回一个空数组。谁能告诉我,我在这里做错了什么? 同样,在employees_array和products_array中,我希望只获取基于条件的数据,例如employe

  • 我有一个包含10个文档的产品根集合。每个文档都有100个文档的子集合,没有其他字段。 现在如果我阅读产品收藏的文件 将收取多少次读取费用,由于我正在获取具有10个文档的产品集合的文档,我将收取10次读取费用?或者每个文档都有100个文档的子集合,因此我将收取10*100 =1000文档读取费用?

  • 如何使用Spring FirestoreReactiveRepository从子集合中获取文档? 问题是:如何动态地将子集合名称或路径指定给@Document annotation? 我的firestore系列:(城市是一级系列,公寓是本系列的子系列) 波乔市 POJO公寓是: 从城市收集中获取数据的CityRepository 调用findById(nyc)时,公寓返回空值。我想在城市对象中填充