appiersign / realtime-model
此包可以实现 Laravel 模型与 Google Firestore 的同步
v1.0.4
2022-08-10 08:31 UTC
Requires
- php: >=7.4
- laravel/framework: >=8.21.0
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';
}