搜索Firebase中是否存在数据始终返回true

时间:2015-09-06 11:49:08

标签: javascript firebase

我有一个包含待处理好友请求数组的数据库结构:

data in Firebase

绿色代表我想要搜索的值。

现在我想做一些简单的检查,看一个人是否已经向一个人发送了一个朋友请求,而没有先获取数据然后循环遍历它,这会对性能产生影响。

我查看了这个查询用户的代码段:

https://gist.github.com/anantn/4323949

我为我的场景调整了它并使它更通用,以便我可以轻松查询我想要的任何内容,此函数位于名为listView的工厂内:

globals

来自我的控制器:

searchFirebase: function(data, endpoint) {

  var dataExists;

  function dataExistsCallback(data, exists) {

    if (exists) {
      dataExists = false;
    } else {
      dataExists = true;
    }
  }

  function checkIfDataExists(data) {

    // fbRefs.getReference returns new Firebase('https://mydb.firebaseio.com/somepath') for example
    var ref = fbRefs.getReference(endpoint);

    ref.child(data).once('value', function(snapshot) {

      var exists = (snapshot.val() !== null);

      dataExistsCallback(data, exists);
    });
  }

  checkIfDataExists(data);

  return dataExists;
}

问题是var path = 'users/' + $routeParams.id + '/profile/friendslist/pending'; var uuid = 'facebook:1230928984398439'; // Example uuid to query for console.log(globals.searchFirebase(uuid, path)); 函数总是返回true,无论我传入什么数据。

我希望能够传递一个字符串,该字符串针对一堆对象的属性进行测试,以查看该值是否存在。

我是否在这里犯了任何明显的错误,导致它总是返回true?

0 个答案:

没有答案