Firebase Rest API 状态代码 18
Firebase Rest API status code 18
我正在对 Firebase 执行多路径更新,结果收到 undocumented error code 18。
我可以在更小的块中执行多路径更新,并且收到成功的 200,但是当它全部为一个时,请求失败。另外,我知道请求的格式是正确的,因为我一定要当心 .
那么,怎么回事?
出乎意料的是,我在身份验证令牌中将 "debug" 声明设置为 true
。
因为 multi-path 更新在每个提供的路径上测试安全规则,并且“x-firebase-auth-debug”响应 header 包含每个安全规则的结果,这可能导致非常大 header。太大以至于导致 Firebase return 状态代码 18,即 cURL Partial File error.
现在,显然有 no actual header-size limit defined by HTTP,但大多数网络服务器对 header 的进出大小施加某种限制。如果大小太大,服务器应该 return 一个“413 实体太大”,Firebase 没有这样做,这是问题的原因(我相信)。
从令牌中删除 "debug" 声明并执行完全相同的 multi-path 更新结果成功。
编辑:
在其他情况下,我收到了其他 cURL 错误,而不是预期的 HTTP 响应代码 - 是否存在这些未记录的原因? (我想这可能是我从中发送请求的服务器,所以我会在那里检查并稍后更新,但我想我会问以防万一...)
我正在对 Firebase 执行多路径更新,结果收到 undocumented error code 18。
我可以在更小的块中执行多路径更新,并且收到成功的 200,但是当它全部为一个时,请求失败。另外,我知道请求的格式是正确的,因为我一定要当心
那么,怎么回事?
出乎意料的是,我在身份验证令牌中将 "debug" 声明设置为 true
。
因为 multi-path 更新在每个提供的路径上测试安全规则,并且“x-firebase-auth-debug”响应 header 包含每个安全规则的结果,这可能导致非常大 header。太大以至于导致 Firebase return 状态代码 18,即 cURL Partial File error.
现在,显然有 no actual header-size limit defined by HTTP,但大多数网络服务器对 header 的进出大小施加某种限制。如果大小太大,服务器应该 return 一个“413 实体太大”,Firebase 没有这样做,这是问题的原因(我相信)。
从令牌中删除 "debug" 声明并执行完全相同的 multi-path 更新结果成功。
编辑:
在其他情况下,我收到了其他 cURL 错误,而不是预期的 HTTP 响应代码 - 是否存在这些未记录的原因? (我想这可能是我从中发送请求的服务器,所以我会在那里检查并稍后更新,但我想我会问以防万一...)