首页 > 解决方案 > 如何在 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());
});
});

有人可以帮助纠正我的代码。

标签: firebaseactions-on-google

解决方案


请记住,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());
    });
});

推荐阅读