我写了一个运行良好的云功能。
有时这个函数对同一个用户执行的时间超过一次(我确保只从客户端android应用程序请求了一个请求)。
经过一些调试后,我注意到如果连接错误会发生此问题。我可能是也可能不对。
如何克服这样的问题?
答案 0 :(得分:1)
在评论中,我也不相信客户端SDK会在错误的连接上复制Cloud Function调用。预期的行为是他们在客户端抛出与网络相关的异常,而不是再次调用它。如果Cloud Function成功运行且客户端无法获得结果,则会出现问题。
我可以想到以下解决方案,没有关于云功能本身的更多细节:
尝试使函数具有幂等性 - 意味着即使它运行两次,最终结果也是相同的,假设输入/参数相同。
缓存结果并手动调整功能 - 这更复杂,只有在网络问题仍然存在且无法消除功能的副作用时才需要。您必须创建另一个类来缓存函数的结果(可能由参数键控)并返回相同的结果而没有计算和副作用。