# #reactjs #firebase #react-admin
Вопрос:
Я хочу иметь возможность перебирать все URL-адреса в серии объектов и редактировать их, чтобы они были видны на react-admin
панели, которая используется react-admin-firebase
для заполнения DataProvider
.
У меня есть куча URL-адресов из хранилища firebase, которые я хочу отобразить в панели администратора. Проблема в том, что firebase хранит эти местоположения файлов по относительному пути, а не по общедоступному пути. т.е. Что-то вроде, gs://imagename.png
а не загружаемый URL https://firebasestorage.googleapis.com/imagename.png
-адрес.
Я пытался использовать useQuery
useDataProvider
хуки и из react-admin
, но они, похоже, возвращают данные, которые неприменимы: для useQuery
я попробовал getList
тип и пустую полезную нагрузку obj и получил обратно пустой массив. ибо useDataProvider
я получаю весь объект поставщика данных и ни один из фактических данных.
Также, когда я попытался передать динамические значения ImageField
компоненту, я получил сообщение об ошибке, в котором говорится source
, что prop должен иметь тип string
. Я думал, что на основе их документов я смогу создать пользовательский объект и передать его в качестве реквизита ImageField
, но img
в DOM элементы не отображаются.
Ответ №1:
(В настоящее время) нет способа загружать данные с gs://
URL-адресов в веб-клиентах.
Если вы хотите отображать изображения из облачного хранилища в своем веб-приложении через Firebase, вам нужно будет получить URL-адрес загрузки для каждого файла и отобразить их в своих img
тегах.
Комментарии:
1. спасибо, я сделал это в своем реальном приложении, но я подумал, что в системе react-admin-firebase может быть какой-то способ справиться с этим проще. Я пытаюсь выяснить, как получить доступ к необработанному
gs://...
URL-адресу, изменить его на общедоступный и передать его вField
компоненты. Я думаю, мне придется сделать это черезCustomField
компонент.2. Даже если вы пометите поле как общедоступное, вам нужно будет получить для него общедоступный URL. Я не думаю, что требуется настраиваемое поле, так как вы можете получить
gs://...
URL-адрес загрузки с URL-адреса, как показано в ссылке, которой я поделился.3. Привет, @crevulus. Что-нибудь еще нужно здесь?
4. да, поскольку проблема скорее связана с react-admin, чем с GCP / FB.