【问题标题】:Firebase Android Cloud Functions Change TimeoutFirebase Android 云函数更改超时
【发布时间】:2023-04-02 16:07:01
【问题描述】:

我在 Android 上使用 Firebase Cloud Functions 库并使用 getHttpsCallable 调用云函数。

问题是函数需要15-20秒才能将结果返回给客户端,所以客户端抛出异常java.net.SocketTimeoutException: timeout.

有什么办法可以改变超时时间吗?

【问题讨论】:

标签: android firebase google-cloud-functions


【解决方案1】:

最新版本的 SDK 添加了 setTimeoutwithTimeout 方法,可让您配置自定义超时。

在此处查看文档: https://firebase.google.com/docs/reference/android/com/google/firebase/functions/HttpsCallableReference

发行说明: https://firebase.google.com/support/release-notes/android

【讨论】:

    【解决方案2】:

    目前无法更改客户端的超时时间。团队意识到这在某些情况下是一个问题。在这变得可配置之前,您有两个选择,最好的选择是编写一个常规 HTTP 函数,并使用您自己的允许配置超时的 HTTP 客户端库。

    您可以file a feature request添加您的声音。

    【讨论】:

    • 好的,我提出了功能请求,将尝试第一个选项,直到添加该功能。谢谢!
    【解决方案3】:

    似乎下面的文章是 10 月 25 日更新的。所以他们可能在那时添加了这个功能。不知道以前有没有。

    正如article 所说,我们现在可以同时描述超时和内存:

    const runtimeOpts = {
      timeoutSeconds: 300,
      memory: '1GB'
    }
    
    exports.myStorageFunction = functions
      .runWith(runtimeOpts)
      .storage
      .object()
      .onFinalize((object) = > {
        // do some complicated things that take a lot of memory and time
      });
    

    或者,直接通过 Google Cloud Platform Console 进行编辑:

    1. 在 Google Cloud Platform Console 中,选择 Cloud Functions 左侧菜单。
    2. 通过在函数列表中单击函数名称来选择函数。
    3. 点击顶部菜单中的编辑图标。
    4. 从标记为 内存的下拉菜单中选择内存分配 已分配
    5. 点击更多显示高级选项,输入多个 超时文本框中的秒数。
    6. 点击保存更新函数。

    【讨论】:

    • 感谢您的帮助。但问题出在 Android 客户端库中。 OkHttp 客户端在 10 秒后超时。并且由于云函数的冷启动,云函数需要 15-20 秒才能完成执行。
    • 是的,我认为超时是我的问题,但事实并非如此,但我想为什么不粘贴我找到的文档,因为我认为这可能是你的问题。 :)
    猜你喜欢
    • 2018-11-30
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2019-02-26
    • 2022-06-29
    • 2018-05-17
    • 2020-06-09
    • 2018-04-14
    相关资源
    最近更新 更多