Javascript 如何使用firebase云函数从firebase实时数据库获取数据?

Javascript 如何使用firebase云函数从firebase实时数据库获取数据?,javascript,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Firebase,Firebase Realtime Database,Google Cloud Functions,所以我想在firebase云函数中从firebase实时数据库中获取数据 我的数据库结构: 我的代码: let usernameFetched: string const snapshot = await admin.database().ref(`/Agent/${userUID}/username`).once("value") usernameFetched = snapshot.val().username console.log(`${usernameFetched}`) retu

所以我想在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语句。有什么办法吗?

改变这一点:

usernameFetched = snapshot.val().username
为此:

usernameFetched = snapshot.val()

在您的路径中,您已经在使用
ref(/Agent/${userUID}/username)
username节点。因此,您只需在
快照上调用
.val()

即可获得该值。请编辑该问题,以显示函数的完整、最小代码,该函数的工作方式与您期望的不同(不仅仅是几行)。还包括一个屏幕截图或其他一些数据库内容的详细描述,以便我们可以检查它是否确实正确@请看一看。该部分仅与从数据库获取数据有关。剩下的代码是从用户输入中获取userUID。除了数据库返回UNDEFINED之外,一切都正常运行。100001是UID之一,commandFn是use input命令。Fetch意味着从数据库中获取数据,这仍然不是函数的完整代码,我们也看不到数据库的内容。请将您的函数编辑为进行查询所需的代码,以便任何人都可以轻松看到发生了什么并重现问题。“可能还有其他事情发生——我们就是看不见。”道格·史蒂文森说。。请让我知道我无法从数据库检索数据