Включение CORS в Firebase Cloud Functions для загрузки видео-ресурса - PullRequest
0 голосов
/ 19 декабря 2018

Я следил за несколькими ответами на эту тему, но ни один из них не работает для меня.

Я пытаюсь включить CORS в своей облачной функции.Эта функция возвращает видео-ресурс, который будет воспроизводиться в приложении WebGL, созданном с помощью Unity.

Это код index.js:

const functions = require('firebase-functions');
const cors = require('cors')({origin: true}); 

var admin = require("firebase-admin");

var serviceAccount = require("./something-eb929f7e59.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "https://app.firebaseio.com"
});

var bucket = admin.storage().bucket("gs://app.appspot.com");

exports.getFileTour = functions.https.onRequest((request, response) => {

    cors((request, response) => {

      response.set('Access-Control-Allow-Origin', "*");
      response.set('Access-Control-Allow-Methods', 'GET');
      response.set('Access-Control-Allow-Headers', 'Content-Type');
      var u = request.query.u;
      var p = request.query.p;
      var filepath = request.query.fp;
      var url_out = '';
      const file = bucket.file(filepath);
      file.getSignedUrl({
          action: 'read',
          expires: '03-17-5000'
      }, function (err, url) {
          if (err) {
              console.error(err);
              return;
          }
          url_out = url;
          response.send(url_out);

          //console.log(request.que);

          });
   });
});

И это мой package.json:

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "lint": "eslint .",
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "firebase-admin": "~5.12.1",
    "firebase-functions": "^1.0.3",
    "cors": "^2.8.5"
  },
  "devDependencies": {
    "eslint": "^4.12.0",
    "eslint-plugin-promise": "^3.6.0"
  },
  "private": true
}

Я установил приложение с помощью Firebase CLI после установки cors в локальной папке (хотя я не знаю, необходимо ли это).

Но я продолжаю получать эту ошибку вконсоль браузера:

Доступ к XMLHttpRequest по адресу https://resource.mp4' от источника 'https://origin.firebaseapp.com' заблокирован политикой CORS: Нет' Access-Control-AllowЗаголовок -Origin 'присутствует на запрашиваемом ресурсе.

Может кто-нибудь дать совет по этому поводу?

Приветствия!

...