Firebase如何删除相关数据

时间:2017-07-18 16:52:05

标签: json firebase firebase-realtime-database

我想使用firebase,在此之前我想知道一些firebase的东西。让我们说我有与该组示例相关的组和用户:

    //Events to rotate using cropper Js library



          'click #rotateL': function(e, instance){
              $('#target').cropper('rotate', -90);
              angleInDegrees   = angleInDegrees - 90 ;
              drawRotated(angleInDegrees);
            },
            'click #rotateR': function(events, instance){
              $('#target').cropper('rotate', 90);
               angleInDegrees += 90;
               drawRotated(angleInDegrees);
            },

        function drawRotated(degrees){
        var canvas = $("#canvas")[0];
        var context = canvas.getContext('2d');
        var image = document.createElement("img");
         image.src = $('#target').attr("src");
        image.onload = function ()    {
         context.drawImage(image,(canvas.width - x1) / 2, 
          (canvas.height - y1) / 2,x1, y1);
         //ctx.drawImage(img, x, y, width, height)
         }
        context.clearRect(0,0,canvas.width,canvas.height);
        context.save();
        context.translate(canvas.width/2,canvas.height/2);
        context.rotate(degrees*Math.PI/180);
        context.drawImage(image, -x1/2,-y1/2);
        context.restore();
        var dataURL = canvas.toDataURL("image/jpeg");
        Session.set("url", dataURL);
}


// event that saves the changes made when you cut the image or rotate.
'click #Save' : function(e) {
    $(".loader").fadeIn("slow");
    e.preventDefault();
    var photoid = $('#photoid').val();
    var dataURL = Session.get("url");
       var photo =  {
                srcData : dataURL,
                userid : Meteor.userId(),
                photo_id : photoid
        }

        Meteor.call('updatePhoto',photo,function(err)  {
          if (!err) {
             $('#photos').show();
             $('#crops').hide();
              canvas.height = 0;
              canvas.width = 0;
             //page relod is better than
               //document.getElementById('target').src="";
             FlowRouter.go('/search');
             FlowRouter.go('/addphoto');
        }
        });
    },

我想知道是否可以删除相关用户到组。假设我删除了{ "users":{ "user1":{ "username":"john", "full_name":"John Vincent", "created_at":"9th Feb 2015", "groups":{ "group1":true, "group3":true } "last_logins":... }, "user2": ..., "user3": ... } "groups": { "group1"{ "group_name":"Administrators", "group_description":"Users who can do anything!", "no_of_users":2, "members":{ "user1":true, "user3":true } }, "group2"{ "group_name":"Moderators", "group_description":"Users who can only moderate!", "no_of_users":1, "members":{ "user2":true } } } } 我想删除此示例中Group2的相关用户?

2 个答案:

答案 0 :(得分:1)

Firebase等非SQL数据库使用JSON。在删除Group 2之前,您必须阅读JSON以查看哪些用户属于Group 2.然后您需要删除这些用户1st。删除它们后,您可以删除第2组。

如果你想设置一个触发器,你可以让它调用一个能自动为你完成一些工作的函数。查看这些Firebase触发链接,了解有关如何设置触发器的详细信息:

  1. Trigger a function with an HTTP request
  2. Trigger a database function

答案 1 :(得分:0)

是的,这是可能的。要实现此目的,您需要查询数据库以查找与您要删除的特定组相对应的用户。拥有这些用户<i> <recipes name="" value="0"></recipes> <recipes name="cg" value="4"> <r>302053</r> <r>302084</r> ... </recipes> ... <recipes name="ALICEBACKPACK" value="1"> <r>302112</r> </recipes> ... </i> names将允许您删除所需的用户。

要删除单个用户,请获取Firebase数据库的根参考,然后对这些特定用户的引用使用删除功能。

id's

最后,只需使用特定组的引用删除整个组。

Firebase root -> child("users") -> child("user1") -> remove function

请记住,流程如下:

  

查找指向特定群组的用户 - &gt;将用户名或用户ID添加到列表中 - &gt;根据用户名或列表中的ID,对用户引用使用删除功能 - &gt;使用组引用上的删除功能删除特定组。

希望它有所帮助。