问题描述
我能够以 snapshot
的形式获取我感兴趣的对象,如下所示 CodePen
以下是代码片段:
$scope.post = {};var postsRef = new Firebase('https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts');$scope.searchPost = 函数 () {console.log('搜索作者:' + $scope.post.authorName);postsRef.orderByChild('作者').equalTo($scope.post.authorName).once('value', function (snapshot) {var val = 快照.val();console.log("搜索到的帖子是:");控制台日志(val);console.log("(From Val) 标题是:" + val.title);var exportVal = snapshot.exportVal();console.log("导出值为:");控制台日志(exportVal);console.log("(From Export Val) Title is : " + exportVal.title);});}
这是正在使用的 Firebase 数据集.>
当我搜索作者:gracehop
时,我得到了正确的快照,但是,我无法访问其中的 title
之类的属性.val.title
&exportVal.title
将 undefined
作为输出.
如何从快照中获取感兴趣的属性?
该查询返回一个包含匹配子项的快照,而这些子项包含您感兴趣的属性.
您可以使用快照的 forEach
方法枚举子项:
postsRef.orderByChild('author').equalTo($scope.post.authorName).once('value', function (snapshot) {快照.forEach(函数(子快照){var value = childSnapshot.val();console.log("标题是:" + value.title);});});
I was able to fetch my interested object as snapshot
as shown in this CodePen
Following is the code snippet :
$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);
});
}
This is the Firebase dataset am using.
When I search for author: gracehop
, I get the correct snapshot but, I'm not able to access properties like title
inside that. Both val.title
& exportVal.title
are giving undefined
as output.
How do I get the interested properties from snapshot?
The query returns a snapshot containing the matching children and it is the children that contain the properties in which you are interested.
You can enumerate the children using the snapshot's forEach
method:
postsRef.orderByChild('author')
.equalTo($scope.post.authorName)
.once('value', function (snapshot) {
snapshot.forEach(function (childSnapshot) {
var value = childSnapshot.val();
console.log("Title is : " + value.title);
});
});
这篇关于如何从 Firebase 中的 snapshot.val() 或 snapshot.exportVal() 获取属性/值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!