我是Firebase Functions and TypeScript的新手。我正在尝试从客户端(Unity和C#)向服务器(Firebase Functions和TypeScript)发出请求。
我的服务器日志显示200状态代码,没有警告或错误。但是,当我收到响应时,它会出错。
客户代码:
public void CallServer(UnityAction<string> callback)
{
var function = MyFirebaseFunctions.GetHttpsCallable("myFunction");
function.CallAsync().ContinueWith((response) =>
{
if (response.IsFaulted)
{
Debug.LogError("Fault!"); //Faults every time
}
else
{
string answer = response.Result.Data.ToString();
Debug.Log(answer);
callback(answer);
}
});
}
服务器代码:
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
export const myFunction = functions.https.onRequest((request, response) =>
{
response.send('{json:here}');
});
我不知道为什么会出错,也不知道如何查找更多信息。如果我尝试调试response
,我的IDE只会拒绝。有更多经验的人可以向我解释我在做什么错吗?
答案 0 :(得分:1)
您实际上是在将“标准” HTTP Cloud Functions与HTTP Callable Cloud Functions混合在一起。
您的Cloud Function代码(“服务器代码”)是带有
的“标准” HTTP Cloud Functions代码。... functions.https.onRequest((request, response) => {...})
您的Unity代码使用
调用HTTP可调用云函数时var function = MyFirebaseFunctions.GetHttpsCallable("myFunction");
最好的方法是如下修改Cloud Function代码:
export const myFunction = functions.https.onCall((data, context) => {
return {foo: 'bar'};
});
有关更多详细信息,请参见doc。