Firebase和AngularJS - 将数据插入现有子级

时间:2016-05-26 21:15:16

标签: angularjs firebase angularfire firebase-realtime-database

我正在AngularJS和Firebase中创建一个博客,我希望对我的帖子发表评论并存储它们。目前,我正在单独保留评论,但我想将它们存储在我为其编写的帖子中。

现在,我的Firebase看起来像这样:

"Articles" : {
 "-KIe9mOqMepTsAYipSA6" : {
   "emailId" : "mail@mail.com",
   "post" : "Test",
   "title" : "Test"
 },
 "-KIe9pBW1LnwAgCh96Mp" : {
   "emailId" : "mail@mail.com",
   "post" : "potatoes",
   "title" : "potatos"
 }
}

当我添加评论时,我希望它看起来像:

"Articles" : {
 "-KIe9mOqMepTsAYipSA6" : {
   "emailId" : "mail@mail.com",
   "post" : "Test",
   "title" : "Test",
   "name" : "Name:,
   "comment" : "Comment"
 },
 "-KIe9pBW1LnwAgCh96Mp" : {
   "emailId" : "mail@mail.com",
   "post" : "potatoes",
   "title" : "potatos",
   "name" : "Name:",
   "comment" : "Comment"
 }
}

我试图将$ push包含在$ update和各种各样的东西中,但没有真正起作用。

这是我添加评论的功能:

$scope.saveComment = function() {
    var name = $scope.article.name;
    var comment = $scope.article.comment;

    var fb = new Firebase("https://blog-2087.firebaseio.com/Articles/");
    var article = $firebase(fb);
    var user = CommonProp.getUser();
    article.$push({ name: name,comment: comment,emailId: user,'.priority': user}).then(function(ref) {
        login.loading = false;
    }, function(error) {
        login.loading = false;
        console.log("Error:", error);
    });
    $('#addCommentModal').modal('hide');
}

有没有办法做到这一点?或者我必须单独保存?

1 个答案:

答案 0 :(得分:0)

请参阅此已结束的问题以获取解释... https://github.com/firebase/angularfire/issues/402

但您不需要使用$push,我也无法在文档中找到它。

我测试了,这应该可行

article.push({ name: name, comment: comment, emailId: user,'.priority': user}).then(function(ref) {
    login.loading = false;
}, function(error) {
    login.loading = false;
    console.log("Error:", error);
});