gpt4 book ai didi

javascript - Firebase 条件/可选查询

转载 作者:行者123 更新时间:2023-11-28 04:24:17 25 4
gpt4 key购买 nike

我对 Firebase 比较陌生,正在尝试创建一个迷你包装器以供我查询数据库。

我的问题是,我不确定如何添加条件查询 sch 作为 orderByChild...

/* Available Arguments:
* - key: Order using a child key
* - firstAmt: Only get the first x elements
* - lastAmt: Only get the last x elements
* - startAt: Get elements starting from index x
* - endAt: Get elements ending at index x
*/
// Not providing anything will give the first 15 elements
function getProjects(arg, callback, errorCB) {
if (!arg) arg = {};
if (!arg.firstAmt) arg.firstAmt = 15;

var obj = firebase.database().ref('projects');
if (arg.key) {
obj.orderByChild(arg.key);
}
if (arg.firstAmt) {
obj.limitToFirst(arg.firstAmt);
}
if (arg.lastAmt) {
obj.limitToLast(arg.lastAmt);
}
if (arg.startAt) {
obj.startAt(arg.startAt);
}
if (arg.endAt) {
obj.endAt(arg.endAt);
}

obj.once('value').then((snapshot) => { callback(snapshot.val())}).catch(errorCB);
}

当我使用 {firstAmt: 1} 调用 getProjects 时,我会获取数据库中的每个项目,而不仅仅是第一个项目。

我不知道这是否是正确的方法,但我觉得测试每个用例(arg.key && arg.firstAmt ...)可能有点过度。

谢谢!

最佳答案

limitToFirst limitToLast startAt endAt equalTo 仅适用于 orderByKey orderByChildorderByValue

所以我建议你将代码更改为:

if (arg.key) {
obj.orderByChild(arg.key);
} else {
obj.orderByKey();
}

这将为您提供前 15 个元素的快照。

关于javascript - Firebase 条件/可选查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45201571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com