2016-11-22 14 views
3
{ 
    "foo":{ 
     "uid":{ // user's uid 
      "push_key_1":{ 
       "bar":"baz" 
      }, 
      "push_key_2":{ 
       "bar":"baz" 
      } 
     } 
    } 
} 

鑑於上面的代碼模型推鍵,如何動態地搜索在查詢push_key_1push_key_2火力地堡如何動態地尋找下一個用戶的數據

我試圖做的事:

var searKey = 'push_key_1'; 

db.ref('foo').orderByKey().equalTo(searKey).once('value') 
    .then(function(snap){ 
     // snap.val() returns null. 
    }).catch(); 

snap.val()null。原來orderByKey()僅用於分類目的。有沒有辦法做到這一點?

回答

0

這比你想要的要簡單得多。當您知道要加載的節點的密鑰時,根本不需要查詢:

db.ref('foo').child(searKey).once('value'.... 
+0

但'foo'的孩子是'uid'吧?它會繞過它的父母嗎? – CENT1PEDE

+0

這將返回'null':/ – CENT1PEDE

+0

啊,對。我錯過了。嗯......讓我想想...... –

0

我認爲這是不可能的,除非重新構造數據庫。我的方法是添加另一個節點來存儲按鍵。

"users_push_keys": { 
    "push_key_1": "uid_1", 
    "push_key_2": "uid_1" 
} 

通過這種方式,您可以通過從此節點檢索數據來獲取uid。 希望這會有所幫助:)