Как вы можете редактировать URL-адреса изображений и отображать их в react-admin

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