Php Laravel kreait包无法创建没有项目ID的消息服务
我想使用Firebase云消息,所以我安装了 我在firebase控制台中创建了一个服务帐户,将下载的.json文件包含在laravel的根文件夹中,并使用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_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",