У нас есть базовое приложение облачного хранилища, которое теперь поддерживает общие файлы.Однако при написании правил я столкнулся с проблемой:
с использованием файла подстановочного знака $, можно использовать консоль 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()"
}
}
}
}