Firebase Web SDK如何为所有httpsCallable请求配置自定义域名
实现方案
你可以通过以下两种方式配置firebase-js SDK的可调用函数请求指向自定义域名:
方式1:全局配置(推荐,所有函数统一走自定义域名)
Firebase JS SDK的functions()初始化方法支持传入第二个参数指定自定义域名,配置完成后所有通过该实例创建的可调用函数都会自动使用自定义域名:
// 初始化时传入对应区域和你配置好的自定义域名 const functions = firebase.app().functions('你的云函数部署区域', 'https://你的自定义域名'); // 后续调用方式和原来完全一致,不需要修改其他代码 const { data } = await functions.httpsCallable('myFunction')(请求参数);
注:请确保自定义域名的GCP负载均衡/转发规则已经正确配置,指向对应区域的云函数集群,且SSL证书有效。
方式2:单个函数单独配置
如果只需要部分函数走自定义域名,其他保持默认,可以直接调用httpsCallableFromUrl方法手动指定函数的完整访问地址:
// 直接传入自定义域名下的完整函数地址 const myFunction = firebase.functions().httpsCallableFromUrl('https://你的自定义域名/myFunction'); const { data } = await myFunction(请求参数);
配置注意事项
- 负载均衡/反向代理配置需要保留云函数可调用协议要求的请求头,包括
Authorization头、Content-Type头,不得修改请求体结构,否则SDK的身份校验和请求解析会失败 - 如果自定义域名前配置了WAF或CDN,请放行
POST请求,不要缓存可调用函数的响应内容 - 云函数侧不需要做任何代码修改,原有可调用函数的逻辑可以直接复用
内容的提问来源于stack exchange,提问作者Mike Fitzbaxter
相关产品推荐
相关产品推荐

