Я хочу читать данные из Firebase:
firebase.database().ref('videos/' + $videoId + '/data' ).once('value')
Но в правилах безопасности я не хочу, чтобы это кто-то читал.Ака, я не хочу использовать:
".read" : true
Я хочу, чтобы неаутентифицированные пользователи могли читать данные, если у них есть специальный токен, который они передают в URL.
firebase.database().ref('videos/' + $videoId + '/data?token=secretToken').once('value')
Мои видеоданные выглядят так:
{
vidoes: {
$videoId: {
data: {
...
}
tokens: {
secretToken: true
}
}
}
Я думаю, правила безопасности будут выглядеть примерно так:
{
vidoes: {
$videoId: {
data: {
".read": "data.parent().child('tokens/' + auth.urlQuery('token').val() ).exist()"
}
}
}
Есть ли кто-нибудь, к кому я могу получить доступпараметры строки запроса / URL в правилах безопасности Firbase?Я мог бы использовать функции Firebase для создания API, но это дополнительный шаг и сетевой запрос.
По сути, он будет вести себя как "токен" для хранилища Firebase:
https://firebasestorage.googleapis.com/v0/b/columbus-c4de8.appspot.com/o/richContent%2F1-min.jpeg_-LPgLxBMt1tBR0dDdNzH?alt=media&token=dfe24c92-e0c2-484a-81df-c09a710b3d34
Еслитокен правильный, тогда пользователь может читать данные.
Примечание: технически возможно использовать токены для правил безопасности ".write".См .: Использование newData для обновлений в правилах безопасности Firebase