0
私はこのCodePenFirebaseのsnapshot.val()またはsnapshot.exportVal()からプロパティ/値を取得する方法は?
に示されるように、以下のsnapshot
としての私の興味を持ったオブジェクトを取得することができましたが、コードスニペットです:
$scope.post = {};
var postsRef = new Firebase('https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts');
$scope.searchPost = function() {
console.log('searched for author : ' + $scope.post.authorName);
postsRef.orderByChild('author')
.equalTo($scope.post.authorName)
.once('value', function (snapshot) {
var val = snapshot.val();
console.log("Searched Post is : ");
console.log(val);
console.log("(From Val) Title is : " + val.title);
var exportVal = snapshot.exportVal();
console.log("Export Value is : ");
console.log(exportVal);
console.log("(From Export Val) Title is : " + exportVal.title);
});
}
これは、使用してFirebase dataset午前です。
著者:gracehop
を検索すると正しいスナップショットが表示されますが、その中にtitle
などのプロパティにアクセスすることはできません。両方ともval.title
& exportVal.title
は、出力としてundefined
を与えている。
スナップショットから興味のあるプロパティを取得するにはどうすればよいですか?
感謝の男を、それが働きました。私たちが 'startAt()'と 'endAt()'を使って範囲を持つデータを照会するとき、データの配列を返すのは理にかなっていますが、 'equalTo()'と**固有ID **単一のオブジェクトだけが返されることを確信していますが、 'snapshot.innerObject.title'のような単一のオブジェクトに直接アクセスする方法はありますか? – BeingSuman
Firebaseは、価値が一意であるかどうかを知らない。私はちょうどこのようなことをします: 'var k、v; snapshot.forEach(function(child){k = child.key; v = child.val(); trueを返します。 if(k){...} '。 'return true'は列挙を短絡させ、ユニークでなければ最初のマッチを得るだけです。 – cartant
Perfecto !!再度、感謝します :) – BeingSuman