在 Firebase 安全规则文件中,是否可以有效地使用“.validate”指令来同步架构,即确保当 Firebase 的一部分被修改时,另一部分也得到更新?或者这是一个坏/无效的想法?
基本上我想做的是创建一个待办事项列表应用程序。我希望能够在我的待办事项列表中创建带有指定标签的任务。对于应用程序中的每个标签,我的 Firebase 后端的“标签”字段中应该有一个相应的标签子字段。标签字段应包含对“任务”字段中任务的有序引用列表。所以,如果一个任务是用“#foo”标签创建的,那么它的名字(id)应该在“tasks/foo”中引用。此外,每当一个任务被删除时,它在每个标签中的引用都应该被删除,并且当一个标签没有孩子时,它应该被删除。
为了澄清这里是模式的一个例子:
{
"tasks": {
"-sdjfaowneono": {
"headline": "Get some milk",
"completed": false,
"tags": {
"0": "all",
"1": "shopping"
}
},
"-asdfhsadfsafwirn": {
"headline": "Pick up the kids",
"completed": false,
"tags": {
"0": "all"
}
}
},
"tags": {
"all": {
"0": "-sdjfaowneono",
"1": "-asdfhsadfsafwirn"
},
"shopping": {
"0": "-sdjfaowneono"
}
}
}
同样,如果任务“-sdjfaowneono”被删除,那么“购物”标签也会被删除。
总之,我需要以特定方式将“标签”模式与“任务”模式同步。我应该在安全规则中进行此同步吗?还是我应该在应用程序级别执行此操作?如果我在应用程序级别执行此操作,则存在应用程序出错并且不会添加/删除它应该添加/删除的标签的风险,那么我该如何克服呢?