[英]CORS Policy error in firebase V9 on an onCall firebase function
我遇到的问题是,一旦我想调用我的 firebase 函数,我就会收到 Cors 策略错误。 我已经阅读了多个关于此的问题,但在 Firebase 版本 9 中找不到解决问题的问题。调用语法在 v9 中有所不同。 而且我不知道如何解决它。
错误:
Access to fetch at 'https://us-central1-mmonitor-19efd.cloudfunctions.net/sendRequest' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Firebase 初始化:
import { initializeApp } from 'firebase/app';
import { getFunctions } from 'firebase/functions';
const firebaseConfig = {
apiKey: "XXXX",
authDomain: "XXXX",
projectId: "XXXX",
storageBucket: "XXXX",
messagingSenderId: "XXXX",
appId: "XXXX",
measurementId: "XXXX"
};
export const firebaseApp = initializeApp(firebaseConfig);
export const functions = getFunctions()
Function 电话:
import { firebaseApp, functions } from "./firebase"
import { httpsCallable } from 'firebase/functions';
function sendRequest(e) {
const sendRequest = httpsCallable(functions, 'sendRequest');
sendRequest()
}
function App() {
return (
<button onClick={sendRequest}>send Request</button>
);
}
export default App;
Firebase 职能:
const functions = require("firebase-functions");
exports.sendRequest = functions.https.onCall(async(data, context) => {
console.log("ok")
});
注意:(我现在正在使用模拟器)注意:(我试图更改服务器的位置,但我不确定如何在模拟器和 v9 的前端中执行此操作)
感谢您的时间!
尝试这个
import { connectFunctionsEmulator } from "firebase/functions";
connectFunctionsEmulator(functions, "localhost", 5001);
除了降级到 firebase@8.10.0 并使用以下代码,我找不到更好的方法:
Firebase 初始化:
import firebase from "firebase/app";
import "firebase/functions"
const firebaseConfig = {
apiKey: "XXXX",
authDomain: "XXXX",
projectId: "XXXX",
storageBucket: "XXXX",
messagingSenderId: "XXXX",
appId: "XXXX",
measurementId: "XXXX"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
firebase.functions().useEmulator("localhost", 5001);
export default firebase
函数调用:
import firebase from "./firebase.js";
function sendRequest(e) {
const sendRequest = firebase.functions().httpsCallable('sendRequest');
sendRequest()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.