bahaaodeh / firestore-php
此包已被放弃,不再维护。未建议替代包。
Firestore PHP 客户端
v1.0.0
2018-04-20 12:31 UTC
Requires
- php: >=5.6.6
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 5.7
This package is auto-updated.
Last update: 2021-02-23 20:11:42 UTC
README
此包完全基于 Firestore REST API
身份验证 / 生成 API 密钥
- 访问 Google Cloud Firestore API
- 选择您想要的项目。
- 从左侧菜单选择
凭据
,然后从服务器密钥或创建自己的凭据
中选择API 密钥
安装
您可以通过 composer 安装此包。
composer require ahsankhatri/firestore-php
依赖项
绑定需要以下扩展才能正常运行
如果您使用 Composer,这些依赖项应自动处理。如果您手动安装,请确保这些扩展可用。
使用方法
初始化
$firestoreClient = new FireStoreApiClient('project-id', 'AIzaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', [ 'database' => '(default)', ]);
添加文档
$firestoreClient->addDocument($collection, [ 'booleanTrue' => true, 'booleanFalse' => false, 'null' => null, 'string' => 'abc123', 'integer' => 123456, 'arrayRaw' => [ 'string' => 'abc123', ], 'array' => new FireStoreArray([ 'string' => 'abc123', ]), 'reference' => new FireStoreReference('/users/23'), 'object' => new FireStoreObject(['nested1' => new FireStoreObject(['nested2' => new FireStoreObject(['nested3' => 'test'])])]), 'timestamp' => new FireStoreTimestamp, 'geopoint' => new FireStoreGeoPoint(1,1), ]);
注意: 如果您想设置自定义的 文档 ID,请传递第三个参数,否则自动 ID 将为您生成。
或者
$document = new FireStoreDocument; $document->setObject('sdf', new FireStoreObject(['nested1' => new FireStoreObject(['nested2' => new FireStoreObject(['nested3' => 'test'])])])); $document->setBoolean('booleanTrue', true); $document->setBoolean('booleanFalse', false); $document->setNull('null', null); $document->setString('string', 'abc123'); $document->setInteger('integer', 123456); $document->setArray('arrayRaw', ['string'=>'abc123']); $document->setArray('arrayObject', new FireStoreArray(['string' => 'abc123'])); $document->setTimestamp('timestamp', new FireStoreTimestamp); $document->setGeoPoint('geopoint', new FireStoreGeoPoint(1.11,1.11)); $firestoreClient->addDocument($collection, $document, 'customDocumentId');
并且...
$document->fillValues([ 'string' => 'abc123', 'boolean' => true, ]);
更新文档
- 更新现有文档
$firestoreClient->updateDocument($collection, $documentId, [ 'newFieldToAdd' => new FireStoreTimestamp(new DateTime('2018-04-20 15:00:00')), 'existingFieldToRemove' => new FireStoreDeleteAttribute ], true);
注意: 将第三个参数作为布尔值 true 传递将指示文档必须存在,反之亦然。
- 覆盖现有文档
$firestoreClient->setDocument($collection, $documentId, [ 'newFieldToAdd' => new FireStoreTimestamp(new DateTime('2018-04-20 15:00:00')), 'existingFieldToRemove' => new FireStoreDeleteAttribute ], [ 'exists' => true, // Indicate document must exist ]);
删除文档
$collection = 'collection/document/innerCollection'; $firestoreClient->deleteDocument($collection, $documentId);
待办事项
- 添加了删除属性支持。
- 添加了对 Object、Boolean、Null、String、Integer、Array、Timestamp、GeoPoint 的支持。
- 添加了异常处理。
- 列出所有文档和集合。
- 支持过滤和分页。
- 支持事务。
- 支持索引。
- 支持整个集合的删除。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全性
如果您发现任何与安全性相关的问题,请通过电子邮件 ahsankhatri1992@gmail.com 而不是使用问题跟踪器来报告。
鸣谢
许可协议
MIT许可协议(MIT)。请参阅许可文件获取更多信息。