【发布时间】:2019-09-22 15:47:53
【问题描述】:
我们有一个基本的云存储应用程序现在支持共享文件。但是,在编写规则时,我遇到了一个问题:
使用通配符 $file,可以使用 JS 控制台加载到可以访问的文件夹(节点)中,但是当尝试访问根文件目录时,它不会加载任何文件,而是加载节点一个可以访问。问题在于根目录没有读写规则,渲染函数需要抓取该目录的值,然后加载该目录下的文件。
我想知道是否有一种方法可以获取目录的值会返回一个只包含一个可以访问的文件的值?
我的意思是:
firebase.database().ref('/shared-files/shared/files/').on('value', (snapshot) => {
alert(snapshot.val())
})
会提醒您可以访问的文件的 json,不包括您不能访问的文件。 共享文件的当前规则如下,共享文件的根目录位于 /shared-files/shared/files/
"shared-files": {
"shared": {
"files": {
"$file": {
".read":"root.child('shared-files').child('shared').child('files').child($file).child('users').hasChild(auth.token.email.replace('@forcloud.app',''))",
".write":"(root.child('shared-files').child('shared').child('files').child($file).child('users').hasChild(auth.token.email.replace('@forcloud.app',''))) || newData.exists()"
}
}
}
}
【问题讨论】:
标签: javascript firebase firebase-realtime-database firebase-security