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

Firebase数据库JSON私钥文件不可读错误排查求助

解决Firebase私钥文件不可读错误

核心问题分析

你代码里直接用/soilution-e35c1-firebase-adminsdk-m2elw-574c063fb3.json作为路径,这是系统根目录的绝对路径,而密钥文件实际在Project目录下,系统找不到文件才报错。另外还要确认两个关键路径的正确性:dbcon.php里的密钥文件路径,以及dashboard.php引入dbcon.php的路径。

具体修复步骤

  • 修正dbcon.php中的密钥文件路径
    因为dbcon.php和密钥文件都在Project目录下,用__DIR__拼接相对路径就能定位到正确文件,修改后的代码如下:

    <?php
    require __DIR__.'/vendor/autoload.php';
    
    use Kreait\Firebase\Factory;
    
    $factory = (new Factory)
        ->withServiceAccount(__DIR__ . '/soilution-e35c1-firebase-adminsdk-m2elw-574c063fb3.json')
        ->withDatabaseUri('https://soilution-e35c1-default-rtdb.firebaseio.com/');
    
    $database = $factory->createDatabase();
    ?>
    
  • 确认dashboard.php引入dbcon.php的路径
    dashboard.php在Project/User/Admin目录,需要向上回溯两级目录才能找到dbcon.php,所以引入代码应该写成:

    require __DIR__ . '/../../dbcon.php';
    

    之前如果引入路径不对,也会导致加载dbcon.php时的路径解析错误。

  • 检查密钥文件权限
    确保Web服务器运行进程(比如Apache的www-data、Nginx的nginx用户)能读取该JSON文件:

    • Linux系统:执行命令chmod 644 /path/to/Project/soilution-e35c1-firebase-adminsdk-m2elw-574c063fb3.json
    • Windows系统:右键文件→属性→安全→给IIS_IUSRS或PHP运行账户添加读取权限

关于数据库仍能操作的说明

报错但数据库可正常操作,大概率是Firebase SDK的缓存机制在起作用——之前正确加载的配置被缓存,暂时还能执行操作,但缓存失效后会彻底无法工作,必须修复路径问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 08:46:26