【发布时间】:2017-08-06 02:28:41
【问题描述】:
我正在使用 Firebase 云代码和 Firebase 实时数据库。
我的数据库结构是:
-users
-userid32
-userid4734
-flag=true
-userid722
-flag=false
-userid324
我只想查询 'flag' 字段为 'true' 的用户。
我目前正在做的是检查所有用户并一一检查。但是这样效率不高,因为我们数据库中有很多用户,函数运行需要10多秒:
const functions = require('firebase-functions');
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
exports.test1 = functions.https.onRequest((request, response) => {
// Read Users from database
//
admin.database().ref('/users').once('value').then((snapshot) => {
var values = snapshot.val(),
current,
numOfRelevantUsers,
res = {}; // Result string
numOfRelevantUsers = 0;
// Traverse through all users to check whether the user is eligible to get discount.
for (val in values)
{
current = values[val]; // Assign current user to avoid values[val] calls.
// Do something with the user
}
...
});
是否有更有效的方法来进行此查询并仅获取相关记录? (并且没有得到所有这些并一一检查?)
【问题讨论】:
标签: node.js firebase firebase-realtime-database google-cloud-functions