Я пытаюсь отправить ответ клиенту, используя http-триггер из облачных функций Firebase.Когда я отправлял ответ, используя расположение файла из Cloud Storage, метод sendFile выдает эту ошибку:
"path must be absolute or specify root to res.sendFile"
res.sendFile(obj.path(param1, param2, param3, param4));
obj.path (param1, param2, param3, param4), это создает путь к gs: //или https: // с параметрами.
Тогда я решил сделать это:
const rp = require("request-promise");
exports.fun = functions.https.onRequest( async (req, res) => {
let extResponse = await rp('firebase storage location');
extResponse.pipe(res);
});
rp теперь возвращает эту ошибку:
StatusCodeError: 403 - "{\n \"error\": {\n \"code\": 403,\n \"message\": \"Permission denied. Could not perform this operation\"\n }\n}"
Эта ошибкаЭто связано с тем, что облачное хранилище требует проверки подлинности запроса, чтобы служба могла загрузить файл из хранилища.
Есть ли способ заставить эту работу работать и вернуть файл обратно клиенту?