appiersign/realtime-model

此包可以实现 Laravel 模型与 Google Firestore 的同步

v1.0.4 2022-08-10 08:31 UTC

This package is not auto-updated.

Last update: 2024-10-02 19:21:38 UTC


README

此包允许您同步 Laravel 模型与 Google Cloud Firestore。此包使用内部开发的 API,并通过 gprc PHP 扩展,无缝连接您的 PHP 后端到 Firestore。

安装

composer require appiersign/realtime-model

设置

在您的 .env 文件中设置以下参数

    ...
    FIRESTORE_SERVER_URI=
    API_GATEWAY_TOKEN=
    ...

配置

在您的 config/app.php 文件中将实时模型服务提供者 'providers' 数组添加到其中。

[
...
AppierSign\RealtimeModel\Providers\RealtimeModelServiceProvider::class

]

在您的 composer.json 文件中将 "AppierSign\\RealtimeModel\\": "vendor/appiersign/realtime-model/src" 添加到 autoload.psr-4 对象中

用法

要自动同步数据到 Firestore,只需将 RealtimeModel 特性添加到所需的模型中。这将自动在创建或更新新模型时同步所有模型属性到 Firestore。

您还可以使用实时 artisan 命令来同步与模型关联的所有数据

    php artisan realtime:sync User

要定义要同步的字段或属性,在模型上定义 toRealtimeData() 公共方法,如下所示

public function toRealtimeData(): array
{
    return [
        'externalId' => $this->external_id,
        'fullName' => $this->full_name,
        'phone' => $this->phone,
        'username' => $this->username
    ];
}

设置键

要设置模型的 id 或主/唯一键,在模型上重写 getSyncKey() 公共方法,如下所示

public function getSyncKey(): string
{
    return 'externalId';
}

此包使用模型名称的复数形式作为集合名称后缀,要更改此设置,在模型上重写 collection() 公共方法,如下所示

public function collection(): string
{
    return 'premium_users';
}