我的项目基于firebase环境。并且发送GET和DELETE调用不仅仅是POST调用。我已经用方法.onRequest注册了我的函数(因为.onCall只支持POST调用,我已经在文档中检查过了(
现在我想从前端调用我的函数。
所以我用这个来接电话。
fetch(API_ROOT+"/api/sentences", {
method: "GET"
})
因此,我不得不使用我的条件,不依赖环境,开发或dist
let API_ROOT = ""
if (location.hostname == "127.0.0.1" || location.hostname == "localhost") {
console.log("This is local emulator environment")
functions.useFunctionsEmulator("http://localhost:5001")
API_ROOT = "http://localhost:5001/[my-project-id]/us-central1"
}else{
API_ROOT = "https://us-central1-[my-project-id].cloudfunctions.net"
}
但是我应该用这个吗?或者有没有类似于.onCall注册的.httpsCallable方法的方法。
因为它不需要完整的调用路径,如下所示。
functions
.httpsCallable("api/sentences")()
.then((res) => console.log(res))
可调用函数的客户端SDK仅用于使用onCall
声明的函数(我建议再次查看该文档(。几乎可以肯定的是,它不适用于用onRequest
声明的普通HTTP触发器。可调用函数有自己非常特定的协议,不允许更改函数的名称或路径URI。
如果您有一个HTTP触发器,请跳过Firebase客户端库,只使用常规的HTTP客户端,就像使用任何其他HTTP API一样。