Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel kreait包无法创建没有项目ID的消息服务_Php_Laravel_Firebase - Fatal编程技术网

Php Laravel kreait包无法创建没有项目ID的消息服务

Php Laravel kreait包无法创建没有项目ID的消息服务,php,laravel,firebase,Php,Laravel,Firebase,我想使用Firebase云消息,所以我安装了 我在firebase控制台中创建了一个服务帐户,将下载的.json文件包含在laravel的根文件夹中,并使用 FIREBASE_CREDENTIALS=app-XXXXX-firebase-adminsdk-XXXX-XXXXXXX.json in.env 还创建了一个控制器,用于向设备发送推送通知 <?php namespace App\Http\Controllers; use Illuminate\Support\Facades

我想使用Firebase云消息,所以我安装了 我在firebase控制台中创建了一个服务帐户,将下载的.json文件包含在laravel的根文件夹中,并使用

FIREBASE_CREDENTIALS=app-XXXXX-firebase-adminsdk-XXXX-XXXXXXX.json
in.env


还创建了一个控制器,用于向设备发送推送通知

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Auth;
use Kreait\Firebase\Messaging\CloudMessage;
use Kreait\Firebase\Messaging\Notification;

class PushNotifactionController extends Controller
{
    public function sendPush(){
        $messaging = app('firebase.messaging');
        $deviceTokens = Auth::user()->deviceTokens()->pluck('device_token')->toArray();

        $message = CloudMessage::new();
        $message->withNotification(Notification::create('Title', 'Body'));

        $sendReport = $messaging->sendMulticast($message, $deviceTokens);
        
        return response()->json([
            'Successful' => $sendReport->successes()->count(),
            'Failed' => $sendReport->failures()->count()
        ]);
    }
}

从firebase控制台,我可以向手机发送通知

包应该自动发现服务帐户和项目ID。
非常感谢您的帮助

经过一番尝试,我找到了这个命令

php artisan优化:清除

问题在于,在Kreait库的文件“Factory.php”中,搜索firebase.json文件的函数使用命令

Util::getenv('FIREBASE\u凭据')


首先,我解锁此文件以进行写入,并检查命令“env('FIREBASE_CREDENTIALS')是否工作,在命令完成后,它是否不工作。

是项目根目录中的服务帐户JSON文件,您能否确保它包含
项目id
字段?还请确保zoo位于最新版本的Laravel软件包和底层SDK上。您可以在发布包配置后禁用自动发现,以确保实际使用了JSON文件。如果这些建议无助于解决问题,请在上打开新问题
"message": "Unable to create the messaging service without a project ID",
"exception": "Kreait\\Firebase\\Exception\\RuntimeException",