【问题标题】:How would I get all data from firestore document?如何从 Firestore 文档中获取所有数据?
【发布时间】:2021-01-12 05:49:07
【问题描述】:

在您告诉我阅读docs 之前,我已经阅读了。我已经尝试了那里的示例,但我没有得到它的工作。

我只是想从我的数据库的静音部分获取所有数据,并能够检查它们是否仍然静音。 (基本上我需要获取他们的 UserId、公会 ID、静音开始和静音结束数据。)

来自我尝试过的文档:

const mutedDB = db.collection('muted');
const queryRef = mutedDB.where('stillMuted', '==', true);
console.log(queryRef)

^ 返回 ^

const mutedDB = db.collection('muted');
const snapshot = mutedDB.where('stillMuted', '==', true).get();
if (snapshot.empty) return console.log('None')  
        
snapshot.forEach(doc => {
  console.log(doc.id, '=>', doc.data());
});

^ 返回错误 ^

我不确定我是否做对了,如果有办法解决/解决这个问题,请告诉我!

【问题讨论】:

  • 来自网络和移动客户端的 Firestore 查询总是返回所有匹配文档中的 all 字段。如果您观察到不同的情况,请编辑问题以显示实际文档(可能是屏幕截图)和显示不同的调试输出。我也建议阅读:stackoverflow.com/help/minimal-reproducible-example
  • @DougStevenson 我已经编辑了帖子,如果您需要更多信息,请告诉我。

标签: javascript google-cloud-firestore


【解决方案1】:

get() 返回一个产生 DocumentSnapshot 的承诺。它本身并不返回 DocumentSnapshot。你需要等待承诺以通常的 JavaScript 方式实现:

const promise = mutedDB.where('stillMuted', '==', true).get();
promise.then(snapshot => {
    if (snapshot.empty) {
        console.log('None');
        return;
    }
    snapshot.forEach(doc => {
        console.log(doc.id, '=>', doc.data());
    });
}

这在您链接的文档中有详细说明,因此我实际上仍然建议您返回并再次研究文档。

【讨论】:

  • 谢谢,我是firebase的新手,所以有点棘手哈哈。不过还是谢谢!完美运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
相关资源
最近更新 更多