作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 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
orderByChild
或 orderByValue
所以我建议你将代码更改为:
if (arg.key) {
obj.orderByChild(arg.key);
} else {
obj.orderByKey();
}
这将为您提供前 15 个元素的快照。
关于javascript - Firebase 条件/可选查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45201571/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!