如何从 Firebase 中的 snapshot.val() 或 snapshot.exportVal() 获取属性/值?
How to get properties / values from snapshot.val() or snapshot.exportVal() in Firebase?
我能够以 snapshot
的形式获取我感兴趣的对象,如此 CodePen
所示
以下是代码片段:
$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
作为输出。
如何从快照中获取感兴趣的属性?
查询 returns 包含匹配 children 的快照,它是包含您感兴趣的属性的 children。
您可以使用快照的 forEach
方法枚举 children:
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);
});
});
我能够以 snapshot
的形式获取我感兴趣的对象,如此 CodePen
以下是代码片段:
$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
作为输出。
如何从快照中获取感兴趣的属性?
查询 returns 包含匹配 children 的快照,它是包含您感兴趣的属性的 children。
您可以使用快照的 forEach
方法枚举 children:
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);
});
});