$ firebasearray。$ save没有将数据保存到firebase

时间:2017-06-21 09:03:42

标签: angularjs firebase firebase-realtime-database angularfire

我有一个应用程序,我正在尝试监视控制器变量的更改并将其保存到firebase,如果发生任何更改,即3路绑定。

service.js

     var ref = firebase.database().ref('checklists').orderByChild('checklistName').equalTo('Sample Firebase Sumant');
                var obj = $firebaseObject(ref);

                obj.$loaded().then(function () {
                    var key = Object.keys(obj);
                    var treeRef = firebase.database().ref('checklists/' + key[4] + '/tree');
                    fullTreeCache = $firebaseArray(treeRef);
                    fullTreeCache.$loaded().then(function () {
                        compressedTree = clipChildren(fullTreeCache);
                        console.log(compressedTree);
                        promise.resolve(raw ? fullTreeCache : compressedTree);
                    });

controller.js

    vm.firebaseData =checklistTreeService.getFullTree();
        $scope.$watch(function () {
return vm.firebaseData;
},function() {
vm.firebaseData.$save($scope,vm.firebaseData);
}, true);
当我在没有任何控制台错误的情况下更改一段数据但未将其保存到firebase实时数据库时,

$ save语句正在执行。如果我的方法有问题,请帮帮我。

1 个答案:

答案 0 :(得分:0)

您可以使用.then语法捕获错误来记录错误。像这样:

$scope.yourFunc = function() {
    list.$save(recordOrIndex)
            .then(function(){
                // save successful
            }, function(error){
                console.log(error);
            });
};

我相信你根据文档向$ save()传递了太多的参数。你必须通过"修改过的"记录或索引。如果您还没有阅读关于$ firebaseArrays的文档,那么您应该阅读。

https://github.com/firebase/angularfire/blob/master/docs/reference.md#saverecordorindex