syailendra/laravel-firestore

此包的最新版本(v1.0.0)没有可用的许可信息。

Laravel 和 Firestore 包

v1.0.0 2021-09-05 16:21 UTC

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"]);