You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel向Firestore插入文档时Postman报ECONNRESET错误求助

Laravel中Firestore调用出现"Error: read ECONNRESET"的排查方案

从你的代码来看,Firebase Auth的createUserWithEmailAndPassword能正常运行,说明基础的Firebase配置和网络连通性没问题,问题集中在Firestore的写入操作上。以下是常见原因和解决办法:

  • 请求格式不符合Firestore要求
    你调用set()时传入的是[$registrant],这会把整个注册信息数组包装成一个索引为0的数组,而Firestore的set()方法需要的是键值对形式的关联数组。这种错误的结构可能导致请求解析异常,触发服务器重置连接。
    修正代码:

    // 去掉外层数组,直接传入registrant关联数组
    $userRef = $userColl->set($registrant);
    

    如果需要保留特殊结构,确保每一项都是明确的键值对,比如:

    $userRef = $userColl->set([
        'info' => $registrant
    ]);
    
  • 网络/防火墙拦截Firestore请求
    Auth和Firestore的请求域名不同,可能你的服务器/本地环境允许访问Auth的域名,但拦截了Firestore的请求(比如firestore.googleapis.com)。

    • 服务器端:检查安全组/防火墙的出站规则,确保允许443端口访问Firestore相关域名;
    • 本地环境:关闭代理、防火墙测试,或者切换网络(比如用手机热点)验证是否是网络限制问题。
  • Firebase服务账号权限不足
    虽然Auth能正常工作,但Firestore的写入需要单独的权限。检查你的服务账号是否拥有Cloud Datastore User或Firestore Editor的IAM权限:

    1. 登录Google Cloud控制台,找到对应的项目;
    2. 进入"IAM与管理员" → "IAM";
    3. 找到你的Firebase服务账号,确认权限包含Firestore的写入权限,没有的话添加对应角色。
  • Firebase SDK版本兼容问题
    可能你使用的kreait/laravel-firebase版本存在bug,或者和当前Laravel版本不兼容:

    1. 查看composer.json里的SDK版本,更新到最新稳定版:
      composer update kreait/laravel-firebase kreait/firebase-php
      
    2. 确保SDK版本和Laravel版本匹配(比如Laravel 10对应SDK 6.x+)。
  • 请求超时导致连接重置
    如果Firestore请求响应过慢,SDK默认的超时设置可能触发连接重置。可以在config/firebase.php里调整HTTP客户端的超时时间:

    return [
        // 其他配置...
        'http_client' => [
            'timeout' => 30, // 调整为30秒或更长
        ],
    ];
    

内容的提问来源于stack exchange,提问作者ralphy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:22:17