以下案例的合适查询是什么?

时间:2017-12-14 20:58:12

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

这是我的数据库结构: Database snap

我正在尝试列出所有“locale”等于“Cairo,Egypt”的用户,所以我做了以下查询:

exports.calculateMatches = functions.https.onRequest((request, response) => {

//访问位于请求用户的区域设置中的用户配置文件

databaseRef.child("users").orderByChild("locale").equalTo(request.query.locale).once("value")
     .then(snap => {
       snap.forEach(profile => {
         console.log(profile);
       });
    });
 });

请注意,此功能部署到firebase云功能,这是我在日志中获得的: logs

1 个答案:

答案 0 :(得分:1)

HTTPS类型函数要求您send a response到客户端才能终止该功能。没有它,它们总会超时,客户将会一直等待。

例如:

const databaseRef = admin.database().ref('')
exports.calculateMatches = functions.https.onRequest((request, response) => {
    databaseRef.child("users").orderByChild("locale").equalTo(request.query.locale).once("value")
    .then(snap => {
        const profiles = []
        snap.forEach(profile => {
            profiles.push(profile.val())
        });
        response.send(profiles)
    })
    .catch(error => {
        response.status(500).send(error)
    });
});