tocaan/fcmfirebase

允许您使用它发送 fcm firebase 通知

dev-master 2024-09-26 12:43 UTC

This package is auto-updated.

Last update: 2024-09-26 12:44:19 UTC


README

Tests

此包允许发送 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)