尝试使用firebase中的“Where”样式获得一个简单的结果但是一直都是null,任何人都可以帮忙吗?
new Firebase("https://examples-sql-queries.firebaseio.com/messages")
.startAt('Inigo Montoya')
.endAt('Inigo Montoya')
.once('value', show);
function show(snap) {
$('pre').text(JSON.stringify(snap.val(), null, 2));
}
答案 0 :(得分:2)
Looking at the applicable records,我看到.priority
设置为时间戳,而不是用户名。
因此,你不能像在这里尝试的那样启动/结束用户的名字。这些仅适用于.priority字段。随着Firebase API的增强功能不断推出,这些功能将在明年大幅扩展。
目前,任意搜索字段的最佳选择是使用搜索引擎。它是邪恶的 - 很容易旋转一个,并拥有触手可及的搜索引擎的全部功能,而不是与冰川SQL式查询混淆。看起来你已经偶然发现了appropriate blog posts这个话题。
当然,您可以使用索引按名称列出用户并存储其所有帖子ID的键。并且,考虑到这是一个非常小的数据集 - 少于100k - 甚至可以抓住整个事物并在客户端上搜索它(较大的数据集可以使用endAt / startAt / limit来获取最近的消息子集):
new Firebase("https://examples-sql-queries.firebaseio.com/messages").once('value', function(snapshot) {
var messages = [];
snapshot.forEach(function(ss) {
if( ss.val().name === "Inigo Montoya" ) {
messages.push(ss.val());
}
});
console.log(messages);
});