Firebase" Where"喜欢搜索

时间:2014-05-22 16:38:18

标签: firebase

尝试使用firebase中的“Where”样式获得一个简单的结果但是一直都是null,任何人都可以帮忙吗?

http://jsfiddle.net/vQEmt/68/

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));
}

1 个答案:

答案 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);
});

另见:Database-style queries with Firebase