我正在尝试从我的React客户端调用我的Firebase云函数。
1.我能够使用HTTP请求成功调用这些函数(如here所述)。这需要在云功能中设置完整的Express应用程序。
1.现在,我尝试使用httpsCallable()
直接从客户端调用云函数(如here所述)。与通过HTTP请求进行调用相比,这种方法似乎有几个优点。然而,使用这种方法,我得到以下CORS错误:
CORS策略已阻止从源“http://localhost:3000”访问“https://us-central1-myapp.cloudfunctions.net/helloWorld”处的提取
我该怎么做?值得这么麻烦吗?这真的是首选的方式吗?
以下是我的云函数:
import * as functions from 'firebase-functions';
export const helloWorld = functions.https.onRequest((request, response) => {
response.send('Hello from Firebase!');
});
以下是我如何从我的客户端调用它:
const sayHello = async (): Promise<string> => {
const helloWorld = firebase.functions().httpsCallable('helloWorld');
const result = await helloWorld();
return result.data;
};
1条答案
按热度按时间2g32fytz1#
通过做
你确实调用了一个Callable Cloud Function,但是通过如下定义被调用的函数
你正在定义一个HTTPS Cloud Function,它是不同的。
您应该将Cloud Function定义为Callable,如下所示: