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 がなくても正常に動作し、メイン コントローラーで呼び出されていることにも言及する必要があります。