【问题标题】:Firebase Authentication with App Engine Automatic scaling使用 App Engine 自动扩展的 Firebase 身份验证
【发布时间】:2017-05-06 14:33:58
【问题描述】:

我正在尝试在 AppEngine 上使用 Firebase 创建一个原型,并且一直达到此处所述的 9 小时配额:https://cloud.google.com/solutions/mobile/firebase-app-engine-android-studio#configuring_the_app_engine_backend_to_use_manual_scaling

文档声明如下:

要将 Firebase 与 App Engine 标准环境结合使用,您必须使用手动缩放。这是因为 Firebase 使用后台线程来侦听更改,而 App Engine 标准环境仅允许在手动扩展的后端实例上使用长期后台线程。

我只是使用 Firebase 身份验证,需要验证客户端访问我使用 Firebase Admin SDK 所做的应用引擎端点。那么它仍然需要产生线程来监听变化吗?有没有办法将 Firebase 配置为不需要这些后台线程,因此不需要手动缩放?

或者有没有其他简单的方法来为匿名和不同的社交提供者进行 OAUTH 自定义身份验证?

【问题讨论】:

    标签: java google-app-engine firebase firebase-authentication


    【解决方案1】:

    是的,您可以在不使用后端实例的情况下使用 Firebase 身份验证。您需要使用 Java Admin SDK 4.0.4。那么就可以运行一个自动伸缩实例(Frontend Instance)

    请看下面的帖子

    Verify Firebase Token at Google App Engine

    【讨论】:

    • 从来不知道他们解决了这个问题。感谢迈克尔的更新 :)
    【解决方案2】:

    您无需手动扩展即可将 Firebase 身份验证与 App Engine 标准环境应用程序一起使用。

    这个tutorial is for Python,但是Java 的模式和流程是一样的。整个流程类似,因为您将在客户端触发您的授权流程,用户将从您允许的身份验证提供程序中进行选择,Firebase 会将 JWT 令牌返回到您的前端脚本,您将该令牌发送到您的您将使用 Firebase 证书对其进行解码并将其交换为您的身份验证令牌的后端。

    从该教程中,客户端 HTML 和 Javascript 对您来说是相同的。您只需要为 Java 重新创建后端逻辑。

    再次强调,自动扩展实例对您来说非常适合。

    【讨论】:

    • "您可以使用 Firebase 证书对其进行解码并将其交换为您的身份验证令牌的后端。"对于这一部分,我使用 FirebaseAdminSDK,它使用以下代码向 Firebase 发出 AsyncRequest Task z = FirebaseAuth.getInstance().verifyIdToken(token);试试 {Tasks.await(z); }catch (Exception e){ e.printStackTrace(); } FirebaseToken z1 = z.getResult();
    • 还有其他方法吗,因为这个需要手动缩放——用来验证token
    • 为什么说需要手动缩放?结果返回的速度不够快吗?出于身份验证或令牌交换的目的,它不需要与 Firebase 保持长期连接。
    • 我通过 Google 支持确认了这一点,这是一个问题。它确实返回了足够快的结果,但是它周围有一些东西需要做一些回调或一些东西,并且无法理解要引用哪个实例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 2020-09-02
    相关资源
    最近更新 更多