假设我有一个具有以下结构的数据库:
root:
bananas:
banana_a: (potato_1)
banana_b: (potato_1)
...
potatos:
potato_1: (...)
potato_2: (...)
...
即。 - banana_a
和banana_b
引用potato_1
(保存其唯一标识符)。
在我的应用程序中,香蕉可能会停止引用马铃薯 当没有香蕉指向马铃薯时,它将被删除以节省存储空间。
如果删除马铃薯将由DB本身(由规则引导)启动,而不是由客户订购,我更愿意这样做。 原因是我不想让邪恶的用户编辑我的JS&防止它发生。
我不知道如何写这样的规则 -
.validate
规则无法处理现有数据,因此在这种情况下无效。
因此,我会请求老聪明的程序员帮助解决问题。
答案 0 :(得分:0)
Firebase安全规则可以允许/禁止读/写操作。它们无法根据您指定的条件触发辅助读取或写入。
您必须在应用程序代码中实现此功能。一种非常常见的方法是不仅可以将香蕉的参考物存放到马铃薯上,还可以将每种马铃薯的参考物存储到香蕉中。
potatos:
potato_1:
bananas:
banana_a
banana_b
potato_2: (...)
这样当你从马铃薯上取下最后一根香蕉时,你可以很容易地看到马铃薯也可以去掉。