Firebaseでは、キーであることがわかっていればリスト内の単一の値を問い合わせることができます。しかし、キーを持っていなければ、リスト内の単一の値を得るのは難しいようです。firebaseリストから単一のアイテムを取得する
私は希望のアイテムを取得することができましたが、解決策は冗長で少しハッキリです。
HERESに私の機能: (fbutilは私firebase URL参照ベースです)
function getCopy(number){
var defer = $q.defer();
var ref = fbutil.ref('copies').orderByChild("number").equalTo(number);
ref.once("value",function(copySnap){
if(!copySnap.exists()){
defer.reject(null);
}else{
var listObj = copySnap.val();
var list = Object.keys(listObj).map(function(copy){
return listObj[copy]});
defer.resolve(list[0]);
}
})
return defer.promise;
}
このコードは、しかし、アイテムを入手するためのより良い方法があれば、私は不思議に動作しません。私が行方不明の火災基地の機能はありますか?またはアイテムを抽出するクリーナーの方法?
私は同じことを考えましたが、 'once'は2つの引数、この場合は "value"とコールバック関数を必要とします。 'once'関数を約束のように返すときも、常に未定義です。残念ながら、これは私にとってはうまくいきません。 –
'once'の' successCallback'はオプションです。それが渡されなければ、それは約束を返すべきです。 Firebase 3を使用しています。 – cartant
興味深いですが、私はfirebase 2を使っていますが、私のbower.jsonによれば2.2.2です。 –