Firestore is a NoSQL document database built for automatic scaling, high performance, and ease of application development. It is the newest version of Datastore and introduces several improvements over Datastore.
We recommend using Firestore in Datastore mode for databases that will be used primarily by App Engine apps. For more information about Firestore modes, see Choosing between Native Mode and Datastore mode.
This document describes how to use the Google Cloud Client Library to store and retrieve data in a Datastore mode database.
Prerequisites and setup
Follow the instructions in "Hello, World!" for PHP on App Engine to set up your environment and project, and to understand how PHP apps are structured in App Engine. Write down and save your project ID, because you will need it to run the sample application described in this document.
Clone the repository
Download (clone) the sample:
git clone https://github.com/GoogleCloudPlatform/php-docs-samples
cd php-docs-samples/appengine/flexible/datastore
Edit project configuration and set dependencies
Install dependencies using Composer:
composer install
Application code
The sample application logs, retrieves, and displays visitor IPs.
The application first instantiates a Datastore mode client:
Each visit is an entity with fields for the visitor's IP address and a timestamp, and is saved to Datastore mode using the insert command:
The ten most recent visits are retrieved in descending order using the query command:
Using index.yaml
files
The sample app performs simple queries. More elaborate Datastore mode queries require
one or more indexes, which you must specify
in an index.yaml
file
that you upload along with your app. This file may be created manually, or
generated automatically while testing your app locally.
Local testing
If you need to develop and test your application locally, you can use the Datastore mode emulator.
For more information
For complete information on Datastore mode, including optimizations and concepts, see the Cloud Firestore in Datastore mode documentation.