我正在向一个现有的Angular/Firebase项目添加可调用函数。我已经使用了我认为是当前配置标准的配置,但该项目仍然在调用生产端点,导致了一个cors异常。
组态设定:
@NgModule({
declarations: [
AppComponent,
routingComponents,
...
],
imports: [
...
provideFirebaseApp(() => initializeApp(environment.firebase)),
provideAuth(() => {
const auth = getAuth();
if (environment.useEmulators) {
connectAuthEmulator(auth, 'http://localhost:5005', { disableWarnings: true });
}
return auth;
}),
-- FUNCTIONS CONFIG CODE --
provideFunctions(() => {
const functions = getFunctions();
if (environment.useEmulators) {
connectFunctionsEmulator(functions, 'localhost', 5001);
}
return functions;
}),
-- FUNCTIONS CONFIG CODE --
provideFirestore(() => {
const firestore = getFirestore();
if (environment.useEmulators) {
connectFirestoreEmulator(firestore, 'localhost', 5006);
}
return firestore;
}),
//provideStorage(() => getStorage()),
provideAnalytics(() => getAnalytics()),
...
],
exports: [],
providers: [...],
bootstrap: [AppComponent]
})
仿真器正在记录:
▷函数[用户中心1-添加消息2]:http函数已初始化(http://127.0.0.1:5001/{project-name}/us-central1/addMessage2)。
对端点的Angular 调用失败,原因是:
CORS策略已阻止从源“http://localhost:4200”在“https://us-central 1-{项目名称}.cloudfunctions.net/addMessage2”处进行提取的访问:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明响应满足您的需要,请将请求的模式设置为“no-cors”以在禁用CORS的情况下提取资源。
1条答案
按热度按时间oxiaedzo1#
您可以按照本Article中提供的说明来模拟Firebase云函数
在该文章中,还提到了如何设置CORS标题,如下所示: