如何请求 Firebase Functions 的回复



我是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'};
});

有关更多详细信息,请参阅文档。

最新更新