在我的应用中,用户可以在best practices之后创建人工制品,这些人工制品存储在用户对象外部,但是他们仍将用户用作密钥,以便至少可以在不进行查询的情况下对其进行检索。
{
user:{
one: {...},
two: {...},
...
},
artefacts: {
one: {
asfasdfsakf: {
date: 12345,
...
},
olidfalksfa: {
date: 23456,
...
},
...
},
two: {
ewoljnfaskl: {
date: 34567,
...
},
odsafosdfaf: {
date: 45678,
...
},
...
},
...
}
}
但是,例如,如果我想查询所有文物而不管其所有者如何,删除旧文物怎么办?
用于查询的文档非常差,但是我知道您可以在查询中添加变量(var)
,但仍然无法使其正常工作。
更新
虽然我认为如果我删除了用户密钥内的嵌套内容,将无法确保对视频的访问权限,但实际上看起来我可以通过这种方式对其进行保护:
"artefacts": {
".read": true,
".write": true,
"$aid": {
".read": "data.child('uid').val() === auth.uid",
".write": "data.child('uid').val() === auth.uid"
}
}