客户端可调用Firebase函数失败,并显示“错误:由于格式不正确,无法读取数据。”部署到us-central1以外的地区(尝试过欧洲西部和亚洲)。
服务器代码
exports.getName = functions.region('europe-west1').https.onCall((data, context) => {
return { name: "Testopoulos" };
});
客户代码(React Native Firebase)
const httpsCallableUserName = firebase.functions().httpsCallable('getName');
getUserName = () => {
httpsCallableUserName()
.then(({ data }) => {
console.log(data.name);
})
.catch(httpsError => {
console.log(httpsError);
})
}
docs中有一条注释,内容是“ [当使用HTTP函数提供动态内容进行托管时,必须使用us-central1”,但是我只是将一个对象返回到前端React Native客户端而不使用Firebase托管。我阅读了有关该地区的其他文章,但我认为情况并非如此。有什么想法吗?
答案 0 :(得分:4)
根据documentation,“客户还可以指定一个区域,并且如果该函数在us-central1
以外的任何区域中运行,则必须这样做。” >
如您所见(请参见上面的注释),必须使用以下方法完成
:var functions = firebase.initializeApp(config).functions('europe-west1');