【问题标题】:Get documents names list when document include nested document in Firebase firestore当文档在 Firebase Firestore 中包含嵌套文档时获取文档名称列表
【发布时间】:2021-08-26 20:28:14
【问题描述】:

'chatrooms' 集合是包含文档,例如文档名称是 'PNJAHph61ZStU7IANgBfXAwW66l2-e8GhTlpLyWSdmmBuMlyrfgiJYlI3'

'PNJAHph61ZStU7IANgBfXAwW66l2-e8GhTlpLyWSdmmBuMlyrfgiJYlI3' 文档包含'messeges'文档和'messeges'文档包含子文档

我需要将文档名称列表包含在“聊天室”集合中。 在正常情况下,这个函数是这样工作的,但在嵌套情况下,它不起作用

firebase.firestore().collection("chatrooms")
        .onSnapshot((querySnapshot) => {
            
            querySnapshot.forEach((doc) => {
                console.log(doc.data()); // For data inside doc
                console.log(doc.id); // For doc id
            }
        )});

【问题讨论】:

  • “文档包含嵌套文档”是什么意思?
  • 您是否尝试在消息子集合中列出文档的 ID?
  • 我正在尝试获取聊天室集合下的子文档 ID 列表

标签: firebase google-cloud-firestore


【解决方案1】:

您需要通过数据聚合创建共生链接,因为集合和子集合中的路径不会链接到名称路径引用之外。此外,如果不读取所有文档的 data(),就不能简单地获取集合中的所有文档名称,这会导致计费读取

因此,如果您需要所有名称的列表,则必须在父文档或名为 _index 的专用文档中创建所有子集合名称的 array

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2018-06-16
    相关资源
    最近更新 更多