最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

网站源码admin34浏览0评论

尽管是在控制台中创建的,但 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 中,我该如何解决这个问题?

回答如下:
发布评论

评论列表(0)

  1. 暂无评论