删除所有firebase数据和引用,然后删除权限

时间:2015-01-04 15:53:55

标签: angularjs firebase angularfire firebase-security

我有一个带有许多指令和范围的角度代码,每个指令和范围都有自己对firebase数据的引用。我在firebase本身使用自定义身份验证和存储权限。

我的问题是:在某些时候我需要删除数据,然后删除它后我还需要删除相关的权限。所有这些在数据库和UI上工作正常,但我在控制台上得到了一堆权限错误,可能是因为某些范围仍在引用已删除的数据。

我注意到我可以使用。$ destroy()来清除引用并且它可以工作,但它会将我的代码包含在内。$ destroy()s遍布。

我是否有任何可能缺少的模式来处理这种情况?为了提供更好的概念,我的firebase数据的结构如下:

<account id>
    permissions
        <house id>
            owner: {r: 1, w: 1},
            admin: {r: 1, w: 0}
        <house id 2>
            ...
    houses
        <house id>
            title: "some title",
            rooms: ["roomId1", "roomId2", ...]
        <house id 2>
            ...
    rooms
        <house id>
            roomId1
                type: "living",
                objects: ["objId1", "objId2", ...]
            roomId2
                type: "empty"
        <house id 2>
            ...
    objects
        <house id>
            objId1: {type: "chair", color: "red"},
            objId2: {type: "table", color: "white"}
        <house id 2>
            ...

所以当我想要删除一个房子时,我需要级联删除所有房间和对象,然后是房子,然后是权限。正如我之前所说,删除很顺利,但是如何确保我的其余代码中没有引用以避免获得权限错误?

FIREBASE WARNING: on() or once() for /4437/houses/-JepfRtexB0YI1oBBZzg failed: Error: permission_denied: Client doesn't have permission to access the desired data. 
Error: permission_denied: Client doesn't have permission to access the desired data.

谢谢

0 个答案:

没有答案