# #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?