【发布时间】:2022-01-01 18:17:48
【问题描述】:
很难找到一些代码来执行此操作,实际上我自己在尝试使其正常工作时遇到了麻烦。我想创建调用图像的 Firebase 函数 URL(这个 URL 有一个来自 Mapbox 的与之关联的令牌)。然后我想将图像写入 Firebase 存储,以便稍后从那里引用它来提供它。到目前为止,我已经弄清楚如何获取图像,但将其保存到存储空间对我来说似乎太多了!救命!
exports.getPolylineFromSessionId = functions.https.onRequest(async (req, res) => {
const sessionId = req.query.id;
if (sessionId) {
const sessionInfo = await db
.collection('sessions')
.doc(sessionId)
.get();
const session = sessionInfo.data();
const results = encodeURIComponent(polyline.encode(convertGpsTrack(session.gpsTrack)));
const url =
'https://api.mapbox.com/styles/v1/mapbox/satellite-v9/static/path-1+fff-0.5(' + results + ')/auto/700x200?access_token=' + mapboxToken;
const bucket = admin
.storage()
.bucket('gs://mybucket.appspot.com')
.file('thumbnails/' + sessionId + '.jpg');
const res = await fetch(url, {
method: 'GET',
headers: {
'Content-Type': 'image/jpeg',
},
});
const blob = await res.blob();
bucket.save(blob, {
metadata: {
contentType: 'image/jpeg',
},
});
res.status(200).send(session);
} else {
res.status(400).send('sessionId required');
}
});
【问题讨论】:
标签: node.js firebase google-cloud-functions fetch firebase-storage