尽管是在控制台中创建的,但 Firestore 条目未显示在 Node.js 中

编程入门 行业动态 更新时间:2024-10-03 23:32:10

尽管<a href=https://www.elefans.com/category/jswz/34/1770649.html style=是在控制台中创建的,但 Firestore 条目未显示在 Node.js 中"/>

尽管是在控制台中创建的,但 Firestore 条目未显示在 Node.js 中

我正在使用 Firestore 开发 Node.js 应用程序。我能够使用 Firestore 的 node.js 创建条目并在 Firestore 控制台中查看它们。但是,当我尝试使用 Firestore 的 Node.js 库获取子集合时,子集合没有显示。我试过等待一段时间,但问题不是因为延迟。

我已经能够在一个函数中重现。这是我用来在 Firestore 中创建新操作条目然后阅读它的代码片段。请注意,如果我在操作之间造成延迟,也会发生同样的情况:

class TesterClass {
  constructor(db) {
    this.db = db;
    setTimeout((async () => {
      this.testFirestore1();
    }).bind(this), 1000);
    setTimeout((async () => {
      this.testFirestore2();
    }).bind(this), 2000);

  ...

  async testFirestore1() {
    const uid = 'uid3';
    const userDoc = await this.db.collection("users").doc(uid);
    const userSnapshot = await userDoc.get();
    console.log(`User exists: ${userSnapshot.exists}`);
    const userData = userSnapshot.data();
    const subCollection = await userDoc.collection("subcollection");
    const subDoc = await subCollection.doc('subDoc');
    // Works if I add here: await subDoc.set({ a: 1 });
    const subSubCollection = await subDoc.collection("subSubCollection");
    const subSubDoc = await subSubCollection.doc("latest");
    await subSubDoc.set({ a: 1 });

    const subcollectionRef = await this.db.collection('users').doc(uid).collection('subcollection');
    const subcollection = await subcollectionRef.get();
    console.log(`subcollection ref path: ${subcollectionRef.path}`);
    console.log(`subcollection for user ${uid}: ${subcollection.size}`, subcollection.docs);
  }

  async testFirestore2() {
    const uid = 'uid3';
    const subcollectionRef = await this.db.collection('users').doc(uid).collection('subcollection');
    const subcollection = await subcollectionRef.get();
    console.log(`subcollection ref path: ${subcollectionRef.path}`);
    console.log(`subcollection for user ${uid}: ${subcollection.size}`, subcollection.docs);
  }
}

当我运行这段代码时,输出显示

User exists: false
subcollection ref path: users/uid3/subcollection
subcollection for user uid3: 0 (0) []
subcollection ref path: users/uid3/subcollection
subcollection for user uid3: 0 (0) []

即使子集合在 Firestore 控制台中可见。

有谁知道为什么子集合没有出现在 Node.js 中,我该如何解决这个问题?

回答如下:

更多推荐

尽管是在控制台中创建的,但 Firestore 条目未显示在 Node.js 中

本文发布于:2024-05-30 11:32:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770452.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:是在   控制台   条目   Firestore   Node

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!