【问题标题】:Firebase Admin SDK in App Engine with Java 8带有 Java 8 的 App Engine 中的 Firebase Admin SDK
【发布时间】:2017-07-09 06:33:41
【问题描述】:

以前,Firebase Admin SDK 无法在具有自动缩放功能的 App Engine 上运行。可能它会创建一些线程并且 Thread 类或类似的东西不在白名单中。

现在 Google 已经在 App Engine 上为我们提供了对 Java 8 的支持(并删除了白名单),这个问题会消失吗? Firebase Admin SDK 能否在具有自动扩展功能的 App Engine 上运行?

【问题讨论】:

  • 请看下面的线程stackoverflow.com/questions/41446582/…。使用正确版本的 Firebase Admin SDK 可以在前端实例上运行
  • 我认为在这方面与使用 Java 8 没有任何区别。Java 8 中是否有任何特定的变化让您认为现在允许在应用引擎上创建线程?
  • App Engine 上的 Java 8 允许创建线程。他们删除了白名单。

标签: google-app-engine firebase java-8 firebase-admin


【解决方案1】:

如果没有手动缩放,Firebase Admin SDK 仍然无法在 AppEngine Java 8 运行时中运行,原因如下:

  1. Java 8 运行时中可用的线程支持存在一些限制。例如,任何不是使用 AppEngine 的 ThreadManager 接口创建的线程都不能调用 AppEngine API。这意味着这些线程无法进行传出网络调用。
  2. SDK 中的数据库客户端代码会产生长时间运行的线程。在 AppEngine 环境中执行此操作的唯一方法是通过后台线程支持。 SDK 在 AppEngine 中部署时专门寻找此功能。我尝试在放宽此要求的情况下运行 SDK,但它不起作用。即使在新的 Java 8 运行时中,请求范围的线程似乎也无法比请求长。

但是,您应该能够在 AppEngine 中使用 FirebaseAuth 接口(用于自定义令牌生成、ID 令牌验证和用户管理),而无需手动扩展。这部分 SDK 支持在请求范围的线程上运行。

【讨论】:

  • 感谢您的回答。不是我希望的答案,但其余的 api 也适用于我的用例。
猜你喜欢
  • 2017-10-31
  • 2019-12-27
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 1970-01-01
  • 2016-12-20
相关资源
最近更新 更多