Я встроил вызываемые функции в мой Firebase API с реагировать на клиента. Я использую эмуляторы Firebase для эмуляции вызываемых функций для локального тестирования на localhost: 5000. При локальном вызове эмулируемых функций они работают отлично, однако при развертывании возвращают ошибку.
Вот мой клиентский вызов:
let functions = firebase.app().functions('europe-west2');
if (process.env.NODE_ENV === 'development') {
functions.useFunctionsEmulator(process.env.REACT_APP_FIREBASE_CALLABLE);
}
export const listTrainers = () => async dispatch => {
try {
let listTrainersFunction = functions.httpsCallable('listTrainers');
let request = await listTrainersFunction();
}
}
Мой REACT_APP_FIREBASE_CALLABLE установлен на http://localhost: 5001 локально и не используется при развертывании.
У меня запущены эмуляторы firebase, которые эмулируют мои функции локально по адресу:
functions[listTrainers]: http function initialized (http://localhost:5001/app-name/europe-west2/listTrainers).
Это отлично работает, и все данные восстановлено, как и ожидалось. Однако, когда я развертываю свои функции и пытаюсь выполнить вызываемую функцию из моего клиента в производственной среде, я получаю следующие ошибки:
Access to fetch at 'https://europe-west2-app-name.cloudfunctions.net/app-name/europe-west2/listTrainers' from origin 'https://app-name.herokuapp.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
index.cjs.js:604 POST https://europe-west2-app-name.cloudfunctions.net/app-name/europe-west2/listTrainers net::ERR_FAILED
На моей панели управления Firebase функции перечислены следующим образом:
https://europe-west2-app-name.cloudfunctions.net/listTrainers
Я не могу получить развернутую версию для вызова функций. В логах функции вообще не вызываются.
Любая помощь?