Как загрузить в хранилище Firebase на интерфейсе, когда Firebase подключена к серверной части?

# #firebase #file-upload #firebase-authentication #google-cloud-functions #firebase-storage

Вопрос:

Проблема:

Я нахожусь в середине создания веб-приложения с использованием облачных функций Firebase. В настоящее время у меня есть Firebase, подключенная к серверной части моего проекта. Однако мне нужно разрешить пользователю загружать файлы размером примерно около 50 МБ.

К сожалению, я только недавно узнал, что максимальный размер HTTP req для облачных функций Firebase составляет 10 МБ. введите описание изображения здесь

В целях безопасности у меня есть правила безопасности(очевидно), поэтому я не могу позволить кому-либо загружать что-либо в хранилище Firebase или Firestore. Поскольку пользователь аутентифицируется на серверной части, а не на интерфейсе, я не могу использовать функции Firebase для загрузки в хранилище Firebase и Firestore без срабатывания правил безопасности.

Каковы были бы некоторые хорошие решения для такого рода проблем, когда я хочу, чтобы Firebase была подключена к серверной части? Спасибо.

Ответ №1:

Проблема Решена!

Я решил эту проблему, создав пользовательский токен на внутреннем сервере с помощью метода Firebase Auth CreateCustomToken (). Затем я передаю этот токен клиенту и выполняю их вход с помощью метода Firebase Auth SignInWithCustomToken ().

Это позволило пользователям загружать файлы на веб-интерфейсе в свои выделенные папки в хранилище Firebase без срабатывания каких-либо правил безопасности!

Ответ №2:

Я не понимаю, почему вы можете разрешить клиенту загружать файлы непосредственно в облачное хранилище. Я думаю, это потому, что вы не используете аутентификацию firebase?? тогда правила не будут применяться??

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

Комментарии:

1. Я не верю, что Firebase SDK для облачного хранилища поддерживает подписанные URL-адреса. Возможно, вы думаете о Google Cloud SDK?