1
我有這種用例,我必須根據用戶以對象形式發出的參數進行查詢。用戶可以發出多個參數進行查詢。它與SQL中的「SELECT * FROM users WHERE FIRST_NAME ='something'AND LAST_NAME ='something'」類似。使用firebase動態查詢
的樣本對象可以是:
var object= {
email: "[email protected]",
location: "San Jose, CA"
};
我有我的火力點數據,這些字段(電子郵件&位置),在一些端點讓叫它/用戶
所以用戶端點將如下所示:
{
"randomID1":{
email: "[email protected]",
location: "San Jose, CA"
},
"randomID2":{
email: "[email protected]",
location: "Menlo Park, CA"
}
}
我必須使用上述對象,並動態地火力生成查詢,這是我有:
return $q(function(resolve, reject) {
ref.orderByChild("email");
for(var key in filterObject){
if(filterObject.hasOwnProperty(key)){
console.log("Key: ",key);
console.log("Value: ",filterObject[key]);
ref.equalTo(""+filterObject[key],""+key);
}
}
return ref.on("value", function (snapshot) {
resolve(snapshot.val());
}, function (errorObject) {
reject(errorObject);
});
});
這總是返回我所有的數據,並沒有真正的過濾任何東西。任何人都可以提供建議嗎?我是firebase的新手,對不起,如果這是一個天真的問題。
謝謝
你訂購火力地堡服務器上的數據,但你不在那裏對其進行篩選。你需要添加類似'equalTo()'的東西。有關所有信息,請閱讀Firebase文檔的此頁面:https://www.firebase.com/docs/web/guide/retrieving-data.html#section-queries。 –
@FrankvanPuffelen感謝您的回覆。我想我真正想要的是這個http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase –
但請注意,Firebase服務器只允許查詢單個屬性。見http://stackoverflow.com/questions/30654872/how-to-query-based-on-multiple-conditions-in-firebase –