【问题标题】:How to fetch data from firebase-realtime-database using firebase cloud functions?如何使用 firebase 云功能从 firebase-realtime-database 获取数据?
【发布时间】:2020-07-26 04:35:25
【问题描述】:

所以我想在 firebase 云函数中从我的 firebase 实时数据库中获取数据。

我的数据库结构:

我的代码:

let usernameFetched: string
const snapshot = await admin.database().ref(`/Agent/${userUID}/username`).once("value")
usernameFetched = snapshot.val().username
console.log(`${usernameFetched}`)

return res.status(200).send({ 
    method: 'sendMessage',
    chat_id,
    text: `Your username is ${usernameFetched}) 
    //This returns a message to user via a telegram bot.
}

顺便说一句,我在 VSCODE 中使用 typescript。

输出始终未定义。为什么?路径是正确的。我尝试了类似问题的所有方法,但没有帮助我。

函数是异步的,我必须在其他函数中使用获取的值,所以我不想在这里使用 return 语句。有办法吗?

【问题讨论】:

  • 请编辑问题以显示无法按您期望的方式工作的函数的完整、最少的代码(不仅仅是几行)。还包括您的数据库内容的屏幕截图或其他一些详细描述,以便我们检查它是否真的正确。 stackoverflow.com/help/minimal-reproducible-example
  • @DougStevenson 请看一看。该部分仅与从数据库中获取数据有关。其余代码是从用户输入中获取 userUID。一切运行良好,除了数据库返回 UNDEFINED。 100001 是 UID 之一,commandFn 是使用输入命令。 Fetch 表示从数据库中获取数据
  • 那还不是函数的完整代码,也看不到数据库的内容。请将您的函数编辑为仅进行查询所需的代码,以便任何人都可以轻松查看所有正在发生的事情并重现问题。可能还有其他事情发生 - 我们只是看不到。
  • @DougStevenson 完成......请告诉我我无法从数据库中检索数据

标签: javascript firebase firebase-realtime-database google-cloud-functions


【解决方案1】:

改变这个:

usernameFetched = snapshot.val().username

进入这个:

usernameFetched = snapshot.val()

在您的路径中,您已经在使用 ref(/Agent/${userUID}/username) 和 username 节点。因此,您需要做的就是在snapshot 上调用.val()。

【讨论】:

    猜你喜欢
    • 2019-04-10
    • 2020-02-28
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 2019-10-17
    • 2023-04-08
    相关资源
    最近更新 更多