syailendra / laravel-firestore
此包的最新版本(v1.0.0)没有可用的许可信息。
Laravel 和 Firestore 包
v1.0.0
2021-09-05 16:21 UTC
Requires
- google/cloud-firestore: ^1.19
- kreait/laravel-firebase: ^3.1
This package is auto-updated.
Last update: 2024-09-06 22:37:19 UTC
README
此包基于 kreait/laravel-firebase,专注于Firestore集成,并支持类似于Laravel的查询构建器,但有一些限制。
安装
此包需要
- Laravel 6.x 及更高版本
- gRPC 扩展
Composer
composer require syailendra/laravel-firestore
服务提供者
<?php // config/app.php return [ // ... 'providers' => [ // ... Syailendra\Firebase\LaravelFirestoreServiceProvider::class, ] // ... ];
用法
读取数据
从集合获取文档
$getDocs = Firestore::collection('collection_name') ->get();
从集合获取一个文档
$data = Firestore::collection('collection_name') ->whereDoc("document_id")->snapshot();
获取子集合
$data = Firestore::collection('collection_name') ->whereDoc("document_id")->getCollections ();
Where
$getDocs = Firestore::collection('collection_name') ->where('lastname', 'Doe') ->get();
使用3个参数的或
$getDocs = Firestore::collection('collection_name') ->where('age', '>=', 19) ->where('lastname', '=', 'Doe') ->get();
注意:当使用两个或更多字段时,必须在Firebase控制台中声明索引.
或使用数组
$getDocs = Firestore::collection('collection_name') ->where([ ['age', '>=', 19], ['lastname', 'Doe'] ]) ->get();
按顺序
$getDocs = Firestore::collection('collection_name') ->orderBy('lastname') ->get();
使用2个参数
$getDocs = Firestore::collection('collection_name') ->orderBy('lastname', 'desc') ->orderBy('age') ->get();
注意:当使用两个或更多字段时,必须在Firebase控制台中声明索引.
或使用数组
$getDocs = Firestore::collection('collection_name') ->orderBy([ ["lastname", "desc"], ["age"] ]) ->get();
限制
$getDocs = Firestore::collection('collection_name') ->orderBy('lastname') ->limit(3) ->get();
插入数据
$insert = Firestore::collection('collection_name') ->insert([ 'firstname' => 'John', 'lastname' => 'Doe', 'age' => 19 ]);
注意:始终使用自动生成的ID.
更新数据
$update = Firestore::collection('collection_name') ->whereDoc('document_id') ->update([ 'firstname' => 'Jeremy', 'lastname' => 'Smith', 'age' => 19 ]);
删除数据
删除文档
$delete = Firestore::collection('collection_name') ->whereDoc("document_id") ->deleteDoc();
删除字段
$delete = Firestore::collection('collection_name') ->whereDoc("document_id") ->deleteFields("age");
使用数组
$delete = Firestore::collection('collection_name') ->whereDoc("document_id") ->deleteFields(["age","lastname"]);