【问题标题】:How can I read data from firestore database in a schedule function? [closed]如何在计划函数中从 Firestore 数据库中读取数据? [关闭]
【发布时间】:2022-01-24 14:01:08
【问题描述】:

我是 Firebase 的新手,但我遇到了一些问题。实际上,我在从 Firestore 数据库中读取数据时遇到了一些困难。我的代码:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
const db = admin.firestore();

exports.scheduledFunction = functions.pubsub.schedule("* * * * *").onRun(async () => {
  console.log("start");
  const querySnapshot = await db.collection("Next_callenges").get();
  console.log("Let's see :", querySnapshot);
  return null;
});

除了这个没有输出:“让我们看看:QuerySnapshot{”。

要添加一些上下文,此代码背后的目标是获取插入第一个数据库的第一个数据,将其添加到第二个数据库并从第一个数据库中删除它。

【问题讨论】:

  • let's see : QuerySnapshot{ 查询快照对象是我对您显示的代码的期望。您是否尝试记录快照中的数据?快照将有一个 .docs 属性,其中包含与您的查询匹配的每个文档,每个文档都有一个 .data() 方法
  • 您应该按照 API 文档中的示例来迭代快照的结果并查看它包含的内容。仅打印快照对象可能没有帮助 - 如果找到任何文档,您真的想编写代码来查看其中的文档数据。

标签: javascript firebase google-cloud-platform google-cloud-firestore


【解决方案1】:

正如其他人所评论的,您获得的输出正是您的代码所期望的:由于您记录了querySnapshot,您将获得QuerySnapshot 类定义的任何调试输出。

如果您想查看该查询快照中每个文档的数据,您可以这样做:

querySnapshot.forEach((doc) => {
  console.log("Document "+doc.id+":", doc.data());
})

请注意,这只是使用 Firestore API,与您在 Cloud Functions 中使用 Firestore 的事实无关。由于 Cloud Functions 为案例增加了相当多的复杂性,我建议首先通过阅读其 documentation 并关注其 codelab 来了解有关 JavaScript 中 Firestore API 的更多信息。

【讨论】:

    猜你喜欢
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 2020-06-23
    • 1970-01-01
    • 2019-07-29
    • 2022-11-30
    相关资源
    最近更新 更多