我是Firebase Functions和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只是说不。 任何有更多经验的人都可以向我解释我做错了什么吗?
您实际上是将"标准"HTTP Cloud Functions与HTTP Callable Cloud Functions混合在一起。
您的云函数代码("服务器代码"(是"标准"HTTP 云函数代码,具有
... functions.https.onRequest((request, response) => {...})
当您的 Unity 代码调用 HTTP 可调用云函数时,使用
var function = MyFirebaseFunctions.GetHttpsCallable("myFunction");
最好的方法是按如下方式调整云函数代码:
export const myFunction = functions.https.onCall((data, context) => {
return {foo: 'bar'};
});
有关更多详细信息,请参阅文档。