Firebase хранилище для хранения изображений и использования URL в базе данных в реальном времени из функций firebase - PullRequest
0 голосов
/ 15 февраля 2020

У нас есть FireBase nodejs функции, где мы получаем данные base64 изображения с нашего сайта партнера. Эти данные, которые мы храним в хранилище Firebase, как показано ниже:

const storageRef = admin.storage().bucket(bucketName)
const fileRef = storageRef.file('myimage.png')
await fileRef.save(base64Image) 

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

В пользовательском интерфейсе я могу напрямую загрузить изображение из консоли Firebase и увидеть ссылку. Мне нужна эта ссылка.

Основываясь на моих исследованиях в Google, я вижу, что получение URL-адреса для загрузки - это проблема на стороне сервера из-за безопасности корзины, и вам нужно получить подписанный срок действия, срок действия которого истекает. В моем случае это как publi c, поэтому я надеюсь, что есть способ получить URL.

Альтернативным способом было бы полностью обойти ведро и сохранить изображение base64 непосредственно в БД в реальном времени, но мне это неудобно из-за очень большой длины строк base64. Мои изображения в идеале должны быть в диапазоне нескольких килобайт.

Как с этим справиться?

1 Ответ

1 голос
/ 15 февраля 2020

У вас есть два варианта:

  1. Использовать на стороне сервера генерировать подписанный URL-адрес с очень большой датой истечения срока действия.
  2. Создать (не истекающий) URL-адрес загрузки на стороне клиента .

Чтобы использовать URL-адреса для загрузки, вам необходимо:

  1. Записать путь к изображению в базе данных при его загрузке.
  2. Есть клиенты обнаруживают, что в базе данных есть URL-адрес для загрузки их изображения.
  3. Если URL-адрес для загрузки отсутствует, попросите клиента сгенерировать URL-адрес для загрузки по пути и записать его в базу данных.
...