firebase - 如何在 Google 上的操作中使用 Firebase 查询
问题描述
我想使用 firebase 查询在我的 action-on-google 应用程序中按姓名搜索特定用户。我使用了以下代码,但它不打印任何内容。
const ref = firebase.database();
const nm = ref.child('Users');
const q =
nm.orderByChild('Name').equalTo('abcd');
q.on('value', snap => {
conv.ask(snap.val());
});
});
有人可以帮助纠正我的代码。
解决方案
请记住,Javascript 是非常异步的,这意味着您需要确保您的函数理解您的执行流程,更重要的是知道它何时结束。
执行此操作的标准方法是通过Promise。许多异步函数现在返回 Promises。
因此,您可以将代码重写为:
app.intent('intent name', conv => {
const ref = firebase.database();
const nm = ref.child('Users');
const q = nm.orderByChild('Name').equalTo('abcd');
return q.once('value', snap => {
conv.ask(snap.val());
});
});
推荐阅读
- linux - 使用 sed 在包含两个特定字符串的行中添加字符
- jquery - 是否可以在 jQuery 中嵌套事件监听器
- pygame - 为什么我收到错误“pygame.error:没有可用的视频设备”?
- javascript - ASP.NET Core Razor 页面 - 获取要在 Chart.js 图表上显示的列表数据
- javascript - 如何映射对象数组
- javascript - 我设置withCredentials为真,但是Axios中跨站请求失败
- c - 如何将函数(具有自己的参数)作为函数中的参数传递?
- json - 如何在 Oracle 11g 中从 JSON 读取数据
- django - ValidationError at / ['“foo” is not a valid UUID.'] / Django admin authentication
- python - Pandas - 列值转换