可以将 Unity / Firebase Auth 与 C# google 云函数一起使用吗?

Can you use Unity / Firebase Auth with C# google cloud functions?

我正在考虑将带有 dotnet 后端的统一游戏移植到 firebase firestore/functions 等。我的初始测试看起来很有希望,但我最大的 hold-up 是我需要重写很多JavaScript.

中的 server-side 逻辑

我知道 firebase 的函数和 firestore 都 运行 在 google 云上,并且函数的云版本支持许多其他语言,包括 c#。我能够创建几个 C# 测试函数并将它们上传到与我的统一测试相同的项目。它们出现在 firebase 门户中,可以通过 google 云等提供的 HTTP 端点调用

我发现我可以使用 FirebaseFunctions callabale API 统一调用不需要身份验证的函数(有趣的是,它似乎只有在响应是 JSON object 以 { "result": [data here] } 的形式)但是,我不能调用需要身份验证的同一函数的版本 - 它 returns 内部错误消息。

我想知道有没有一种方法可以从 unity firebase API 调用这些方法 - 传递我从登录 firebase 获得的用户 id/auth?我看到一些 examples/answers 人们说直接使用 Authorization: bearer token header 调用云函数,但我似乎无法找到从当前用户获取身份验证令牌的方法Unity Firebase API.

我想我正在进一步走出 firebase 统一领域 API,更多地进入 google cloud/identity 平台

您可以通过在他们的个人资料上调用 TokenAsync() 来检索当前用户的 ID 令牌。

这是您需要在调用 Cloud Functions 的 Authorization header 中传递的值,然后您可以在 Callable Cloud Functions 中访问它。

或者,您可以实施常规的 HTTP 云函数,以您认为合适的任何方式传递相同的函数,然后在服务器上 decode and verify the ID token 自己使用 Admin SDK。