tocaan / fcmfirebase
允许您使用它发送 fcm firebase 通知
dev-master
2024-09-26 12:43 UTC
Requires
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ^3.7
- orchestra/testbench-browser-kit: ^3.7
- phpunit/phpunit: ^7.0|*
- sempro/phpunit-pretty-print: ^1.0
Suggests
- sensiolabs/security-checker: Required to use the security check command
This package is auto-updated.
Last update: 2024-09-26 12:44:19 UTC
README
此包允许发送 fcm firebase 消息
安装
通过 composer 安装
composer require tocaan/fcmfirebase dev-master
并在 config/app.php 中添加服务提供者
Tocaan\\FcmFirebase\\FcmFirebaseServiceProvider,
然后注册 Facade 类别名
'FcmFirebase' => \Tocaan\FcmFirebase\Facades\FcmFirebase::class,
发布资源
php artisan vendor:publish
入门
要开始使用,请在 User Model 中启用 FcmChannelTokens 和在 FcmFirebase Facade 中使用 sendForUser
- 必须实现
\Tocaan\FcmFirebase\Contracts\IFcmFirebaseDevice
并使用 trait\Tocaan\FcmFirebase\Traits\FcmDeviceTrait
class User extends Authenticatable implements \Tocaan\FcmFirebase\Contracts\IFcmFirebaseDevice
{
use \Tocaan\FcmFirebase\Traits\FcmDeviceTrait
}
要发送数据库中的所有设备令牌,可以使用这个
$data = [
"title" => [
"ar" => "test",
"en" => "test"
],
"description" => [
"ar" => "test",
"en" => "test"
],
"type"=>"general",
"id" => -1
];
FcmFirebase::sendToAllDevices($data)`;
要发送给用户,可以使用这个(但必须先处理模型 User)
$data = [
"title" => [
"ar" => "test",
"en" => "test"
],
"description" => [
"ar" => "test",
"en" => "test"
],
"type"=>"general",
"id" => -1
];
FcmFirebase::sendForUser($user,$data)`;
要注册新的设备令牌,可以使用这个方法
$data = [
'device_token' => "dd"
'user_id' => "1",
'platform' => "ANDRIOD",
'lang' => $data["lang"] // OPTIONAL,
];`
FcmFirebase::registerToken($data)
要注销用户
FcmFirebase::logoutUser($user)
要在 Notification 类中使用,可以使用此通道 FcmChannelTokens
并实现此方法 toFcm
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return [FcmChannelTokens::class];
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toFcm($notifiable)
{
return [
"title" => [
"ar" => "test",
"en" => "test"
],
"description" => [
"ar" => "test",
"en" => "test"
],
"type"=>"general",
"id" => -1
];
}
要允许调试 Firebase 的响应,需要在 .env 中允许此操作
FCM_ALLOW_LOG= true
要禁用初始化时解析 SERVICE_ACCOUNT,但必须调用 setServiceAccount
并设置路径以避免获取异常 serviceAccountNotConfigure
FCM_PARSE_SERVICE_ACCOUNT_IN_INIT= false
setServiceAccount
方法允许用户覆盖 SERVICE_ACCOUNT 文件
要允许在设备模型中进行 morph,请转到配置并更改以下配置
"allow_morph"=> true,
"morph" =>"owner", the morph relation name
"morph_index"=> false, // if need to make morph index
要将旧包中的包升级到用户包,需要遵循以下步骤
- instal package
- remove call this `$this->Push` and use this FcmPush::push($fields, $platform, $lang)