Firebase安全规则(.write)

时间:2017-10-25 18:27:38

标签: firebase firebase-security

我尝试保存任何用户事务日志。因此,例如当用户创建,更新或删除某些内容时,其日志将保存在" Transactions"。

我很难在这个问题上编写安全规则(.write)。

例如;如果用户调用(userKey2)更新名为(userKey1)的用户数据,如下所示:

{ "Users"
   {"userKey1":
      { "Name":"Mike",
        "Age":"18",
        "Location":"Sydney" }
   }
}

我也将它添加到" Transactions"

{ "Transactions" :
    { "Key" :
       { "Object" : "Users",
         "DateTime: "2017-10-25 10:00:00",
         "ObjectKey" : "userKey1",
         "Type" : "Update",
         "Who" : "userKey2"
       }
    }
}

我一起向firebase发送更新命令。 (对于"用户"和#34;交易")保证更新所有或不更新。

如何为"交易"制作(.write)安全规则? ?因为我想阻止任何数据输入到" Transactions"没有它的"对象"和#34; ObjectKey"真的存在于"用户"采集。

但在我的例子中,它们都不存在(它们都是不同集合中的新数据)所以我无法在"用户"集合。

1 个答案:

答案 0 :(得分:0)

您可能需要考虑使用Firebase数据库触发器来实现此功能。客户端应用程序只会写入“用户”节点。您可以创建一个触发器,每次在“Users”节点下对数据进行更新时都会触发该触发器;该触发器可以将附加条目写入“Transactions”节点。

触发器方法可确保您只将数据写入“用户”下真正存在的“事务”。触发器仅在用户下添加数据时触发。

此外,由于对事务的触发器写入以管理员权限执行,因此您无需为事务节点提供对最终客户端用户的写访问权。

Here is the documentation on Firebase triggers