我想弄清楚如何用 angular + firebase 做一个简单的 CRUD。我从读取操作开始。我有以下数据结构:
鉴于此,我创建了以下规则:
我有一个工作工厂如下:
factory('wordsFactory', function($http){
var factory = {};
var words = [
{content:"hi", definition:"ooo"},
{content:"h3", definition:"ooo222"}
];
factory.getWords = function(){
return words;
//ajax call here
};
factory.addWords = function(){
//something
}
return factory;
})
我对其进行了修改以尝试像这样包含调用:
factory('wordsFactory', function($http){
var factory = {};
var words = [];
var ref = new Firebase('https://my-firebase.firebaseio.com/words');
ref.once('value', function($scope, snapshot) {
$scope.variable = snapshot.val();
words = [
{content: ref.content, definition: ref.definition}
];
});
factory.getWords = function(){
return words;
//ajax call here
};
factory.addWords = function(){
//something
}
return factory;
})
但是,每当我尝试阅读时,我都会得到:
Error: permission_denied: Client doesn't have permission to access the desired data.
和
FIREBASE WARNING: Exception was thrown by user callback. TypeError: Cannot read property 'val' of undefined
许多事情,我意识到由于我拥有它的方式,即使它有效,它也只会返回 1 个值。我现在可以接受,因为我只是想弄清楚如何让它工作。我也知道我当前的数据结构可以大大改进,我再次这样做只是为了学习,但随时提出您认为可能对我有帮助的任何建议。
我现在主要担心的是我无法阅读它。我还应该提到,工厂在没有 firebase 的情况下正常工作,它在主控制器中被调用。