PHPackages                             gsposato/yii2-firestore - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. gsposato/yii2-firestore

ActiveLibrary[Database &amp; ORM](/categories/database)

gsposato/yii2-firestore
=======================

A Yii2 Component that connects to Google Firestore

342[3 issues](https://github.com/gsposato/yii2-firestore/issues)PHP

Since Jun 21Pushed 7y ago2 watchersCompare

[ Source](https://github.com/gsposato/yii2-firestore)[ Packagist](https://packagist.org/packages/gsposato/yii2-firestore)[ RSS](/packages/gsposato-yii2-firestore/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

yii2-firestore
==============

[](#yii2-firestore)

A Yii2 Component that connects to Google Firestore

Before using this plugin, run this command on your server:

```
    pecl install protobuf
```

To install with composer, add this to your composer.json file:

```
    {
        "require": {
            "gsposato/yii2-firestore":"master",
        },
        "repositories": [
            {
                "type": "vcs",
                "url": "https://github.com/gsposato/yii2-firestore.git"
            }
        ]
    }
```

In your main-local:

```
        'firestore' => [
            'class' => 'vendor\gsposato\yii2firestore\FirestoreComponent',
            'credential_file'=>'/path/to/your/firebase_auth.json',
            'project' => 'your-project-name',
        ],
```

Code Examples:

```
    /**
     * Firestore Add
     */
    public function actionUnitFirestoreAdd()
    {
        $person = array(
            "name" => "Gregory Sposato"
        );

        print_r(Yii::$app->firestore->add('people', $person)); // this generates an $id for other functions
    }

    /**
     * Firestore Get
     * @param String $id
     */
    public function actionUnitFirestoreGet($id)
    {
        print_r(Yii::$app->firestore->get('people', $id));
    }

    /**
     * Firestore Update
     * @param String $id
     */
    public function actionUnitFirestoreUpdate($id)
    {
        $arr = array(
            "name" => "Gregory Sposato Jr.",
            "nested-data" => array(
                "age" => "28",
                "hair-color" => "brown",
                "eye-color" => "brown",
                "height" => "5ft, 2in"
            )
        );
        print_r(Yii::$app->firestore->update('people', $id, $arr));
    }

    /**
     * Unit Test for Firestore Remove
     * @param String $id
     */
    public function actionUnitFirestoreRemove($id)
    {
        print_r(Yii::$app->firestore->remove('people', $id)); // this actually doesn't work yet
    }

    /**
     * Queries Firestore
     */
    public function actionQueryFirestore()
    {
        $conditions = array(

                array(
                    "property" => "timestamp",
                    "operator" => ">=",
                    "comparison" => Yii::$app->firestore->timestamp(new \DateTime("Mon Jan 1st 2018"))
                    ),

                array(
                    "property" => "timestamp",
                    "operator" => "
