Доступ к образам Firebase Storage без .getDownloadUrl - PullRequest
0 голосов
/ 20 января 2020

Мне действительно нужно иметь возможность динамического доступа к изображениям в моем хранилище FireBase, создав URL. Нечто похожее на это:

https://firebasestorage.googleapis.com/v0/b/<bucket>.appspot.com/o/userImages%2F<userUID>2%2F<imageUID>?alt=media

Я знаю, это было бы возможно, так как мне удалось загрузить изображение в свой браузер. Однако меня беспокоит безопасность.

Мне нужно установить правило allow read: if true;, чтобы это сработало

Если кто-то с дурными намерениями захочет видеть изображения пользователей, сможет ли он увидеть все изображения в моем ведре, или им нужно угадать userUID и imageUID?

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Правила не работают на URL. НО в URL загрузки есть токен, который может быть сгенерирован вами или сгенерирован в контейнере по умолчанию UUID, который всегда уникален.

https://firebasestorage.googleapis.com/v0/b/ [bucket] .appspot .com / o / userImages% 2F [userUID] 2% 2F [imageUID]? alt = media & token = [accessToken]

0 голосов
/ 20 января 2020

То, что вы спрашиваете, невозможно без специального кода. Правила безопасности Firebase вообще не влияют на URL-адреса прямой загрузки.

Если вы хотите ограничить доступ к URL-адресам прямой загрузки любого типа, вам потребуется какая-то пользовательская внутренняя служба, которая проверяет разрешение конечного пользователя перед доставкой. контент. Это означает, что вам придется создать собственную конечную точку, которая будет обслуживать содержимое файла в хранилище.

...