我有一个使用"context.auth.uid“的云函数,出于JSON解析的原因,我想使用Retrofit而不是Firebase函数API来触发它。但是当我尝试这样做的时候,我得到了这个错误:Request has incorrect Content-Type. app/google-services.json
。我不知道如何传递函数API传递的身份验证信息。下面是我的代码:
云函数HTTP函数:
exports.getMatches = functions.https.onCall((req, context) => {
var uid = context.auth.uid;
console.log("uid: ", uid);
});
用于改装的安卓SearchAPI接口
public interface ElasticSearchAPI
{
@POST("getMatches/")
Call<ElasticHitsObject> getMatches(@Header("Content-Type") String
content_type,@Header("Authorization") String secretKey);
}
Android调用函数
Call<ElasticHitsObject> call = searchAPI.getMatches("app/google-services.json","api_key");
发布于 2019-03-15 08:16:42
正如您在代码中声明的那样,Retrofit不知道如何调用callable functions。他们有一个旨在与Firebase client SDK一起使用的special protocol。
如果你想使用一个超文本传输协议客户端库来调用一个云函数,你应该做一个HTTP function,而不是一个可调用的。请注意,它们的声明方式不同。一个以functions.https.onCall()
开头,另一个以functions.https.onRequest()
开头。
https://stackoverflow.com/questions/55173438
复制相似问题