本文介绍了如何从 Firebase 中的 snapshot.val() 或 snapshot.exportVal() 获取属性/值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我能够以 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.titleundefined 作为输出.

如何从快照中获取感兴趣的属性?

解决方案

该查询返回一个包含匹配子项的快照,而这些子项包含您感兴趣的属性.

您可以使用快照的 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() 获取属性/值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-23 21:26