Javascript Firebase orderBy查询返回null

Javascript Firebase orderBy查询返回null,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我在以下功能中查询FB: getLimit: function(artistId, limit) { console.log(FBURL + 'songs?orderBy=\"artist_timestamp\"&startAt=\"' + artistId + '_\"&endAt=\"' +

我在以下功能中查询FB:

  getLimit: function(artistId, limit) {
    console.log(FBURL + 
                        'songs?orderBy=\"artist_timestamp\"&startAt=\"' + 
                        artistId + 
                        '_\"&endAt=\"' + 
                        artistId +
                        '_9999\"&limitToLast=' + 
                        limit + 
                        '');

     ref= new Firebase(FBURL + 
                        'songs?orderBy=\"artist_timestamp\"&startAt=\"' + 
                        artistId + 
                        '_\"&endAt=\"' + 
                        artistId +
                        '_9999\"&limitToLast=' + 
                        limit + 
                        '');

     console.log(ref);

      ref.on('value', (snapshot) => {
        console.log("hello");
        var val = snapshot.val();
        console.log(val);
     });
     results = $firebaseArray(ref);
        results.$loaded().then(function() {
    console.log("loaded record:", results.$id);

   // To iterate the key/value pairs of the object, use angular.forEach()
   angular.forEach(results, function(value, key) {
      console.log(key, value);
   });
 });
   return results;
  }
当我看到我用第一个console.log调用的URL时,我试图通过将参数逐字复制并粘贴到new Firebase到curl请求中,在终端中重现空结果,如下所示:

curl "the-exact-url-except-add-dot-json"
这是我传递给新Firebase的基本格式:

所以当我卷曲的时候

curl 'https://my-proj.firebaseio.com/songs.json?orderBy="artist_timestamp"&startAt="foo_"&endAt="foo_9999"&limitToLast=7'
它可以工作,但是当我对前一个URL进行快照时,我在on'value'回调中得到null

我得到了我期望的结果,这是一个由歌曲键和对象组成的对象


但是,当我得到ref的快照以及转换为firebaseArray并调用回调$loaded后,在这两种情况下我都得到null。我不确定是什么让结果出现在终端中,而不是代码中

不能将带有查询参数的URL传递到Firebase构造函数中。而是通过调用位置引用上的相应方法来添加它们。例如

ref = new Firebase(FBURL + 'songs');
var query = ref.orderByChild("artist_timestamp")
               .startAt(artistId)
               .endAt(artistId+'_9999')
               .limitToLast(limit);
我还强烈建议您迁移到新的Firebase SDK,其文档如下:。使用最新的SDK—您正在使用的SDK至少有一年历史—将确保您找到更多有用的文档,并且有更多的开发人员可以提供帮助

ref = new Firebase(FBURL + 'songs');
var query = ref.orderByChild("artist_timestamp")
               .startAt(artistId)
               .endAt(artistId+'_9999')
               .limitToLast(limit);