У меня есть приложение с поддержкой Firebase. и когда я сделал это, я не думал о размерах изображений, как будто они будут полезны в будущем, поэтому я просто сохранил изображения такими, какие они есть, и сохранил их URL в firestore.
Но теперь я нуждаюсь в размерах изображений, прежде чем показывать их пользователю, поэтому я подумал о создании функции, которую я буду выполнять только один раз, чтобы установить файлы с их размером в firestore, и я также добавлю некоторую сторону клиента код для получения размеров перед их загрузкой.
Итак, я перепробовал почти все, чтобы получить размеры файлов в функциях, но не смог этого сделать.
образец [аннотация код]
этот код работает в node.js, но не работает в функциях firebase
const fs = require('fs')
const request = require('request')
import sizeOf from 'image-size'
const FIRE = 'https://firebasestorage.googleapis.com/file....'
const FILE = 'file.jpg';
request.head(FIRE, (err, res, body) => {
request(FIRE)
.pipe(fs.createWriteStream(FILE))
.on('close', () => {
sizeOf(FILE, (err1, dimensions) => {
const result = {
"width": dimensions.width,
"height": dimensions.height
}
console.log(dimensions.width, dimensions.height);
fs.unlinkSync(FILE);
response.setHeader('Content-Type', 'application/json');
const responseData = {
'Error': false,
'Message': "result : " + result
};
response.send(JSON.stringify(responseData));
})
})
})
помогите мне, если кто-то что-то знает об этом!
и более того, также расскажите мне о том, как firebase хранит изображения, я имею в виду, каким образом? всякий раз, когда я открываю URL-адрес, он не показывает мне изображение, вместо этого он просто загружает изображение без других ссылок на случайные веб-сайты.
У меня есть хитрость, чтобы сделать это. Это довольно подвержено ошибкам, но будет работать наверняка:
получить все URL-адреса изображений с помощью API-интерфейса и выполнить все локально с помощью node.js и отправить результат в другой API-интерфейс, который затем передаст данные в firestore?