# Cloud Firestore API - Module Google::Cloud (v3.2.0)

3.2.0 (latest) 3.1.1 3.0.0 2.16.1 2.15.1 2.14.0 2.13.1 2.12.0 2.11.0 2.10.1 2.9.1 2.8.0 2.7.2 2.6.6 Reference documentation and code samples for the Cloud Firestore API module Google::Cloud.

## Methods

### .firestore

    def self.firestore(project_id = nil, credentials = nil, scope: nil, timeout: nil, database_id: nil, transport: nil) -> Google::Cloud::Firestore::Client

Creates a new object for connecting to the Firestore service.
Each call creates a new connection.


<br />

For more information on connecting to Google Cloud see the
[Authentication Guide](https://docs.cloud.google.com/ruby/docs/reference/google-cloud-firestore/latest/AUTHENTICATION "Authentication Guide").
**Parameters**

- **project_id** (String) --- Identifier for a Firestore project. If not present, the default project for the credentials is used.
- **credentials** (Google::Auth::Credentials) --- A Google::Auth::Credentials object. (See [Firestore::Credentials](https://docs.cloud.google.com/ruby/docs/reference/google-cloud-firestore/latest/Google-Cloud-Firestore-Credentials "Google::Cloud::Firestore::Credentials (class)")) @note Warning: Passing a `String` to a keyfile path or a `Hash` of credentials is deprecated. Providing an unvalidated credential configuration to Google APIs can compromise the security of your systems and data.


  @example

  # The recommended way to provide credentials is to use the `make_creds` method
  # on the appropriate credentials class for your environment.

  credentials = ::Google::Auth::ServiceAccountCredentials.make_creds(
  json_key_io: ::File.open("/path/to/keyfile.json")
  )

  firestore = Google::Cloud::Firestore.new(
  project_id: "my-project-id",
  credentials: credentials
  )
- **scope** (String, Array\<String\>) *(defaults to: nil)* ---

  The OAuth 2.0 scopes controlling the
  set of resources and operations that the connection can access. See
  [Using OAuth 2.0 to Access Google
  APIs](https://developers.google.com/identity/protocols/OAuth2).

  The default scope is:
  - `https://www.googleapis.com/auth/datastore`
- **timeout** (Integer) *(defaults to: nil)* --- Default timeout to use in requests. Optional.
- **database_id** (String) *(defaults to: nil)* --- Identifier for a Firestore database. If not present, the default database of the project is used.
- **transport** (:grpc, :rest) *(defaults to: nil)* --- Which transport to use to communicate with the server. Defaults to `:grpc`.
**Returns**

- ([Google::Cloud::Firestore::Client](https://docs.cloud.google.com/ruby/docs/reference/google-cloud-firestore/latest/Google-Cloud-Firestore-Client))
**Example**

```ruby
require "google/cloud"

firestore = Google::Cloud.firestore
```

### #firestore

    def firestore(scope: nil, timeout: nil, database_id: nil, transport: nil) -> Google::Cloud::Firestore::Client

Creates a new object for connecting to the Firestore service.
Each call creates a new connection.


<br />

For more information on connecting to Google Cloud see the
[Authentication Guide](https://docs.cloud.google.com/ruby/docs/reference/google-cloud-firestore/latest/AUTHENTICATION "Authentication Guide").
**Parameters**

- **scope** (String, Array\<String\>) *(defaults to: nil)* ---

  The OAuth 2.0 scopes controlling the
  set of resources and operations that the connection can access. See
  [Using OAuth 2.0 to Access Google
  APIs](https://developers.google.com/identity/protocols/OAuth2).

  The default scope is:
  - `https://www.googleapis.com/auth/datastore`
- **timeout** (Integer) *(defaults to: nil)* --- Default timeout to use in requests. Optional.
- **database_id** (String) *(defaults to: nil)* --- Identifier for a Firestore database. If not present, the default database of the project is used.
- **transport** (:grpc, :rest) *(defaults to: nil)* --- Which transport to use to communicate with the server. Defaults to `:grpc`.
**Returns**

- ([Google::Cloud::Firestore::Client](https://docs.cloud.google.com/ruby/docs/reference/google-cloud-firestore/latest/Google-Cloud-Firestore-Client))
**Examples**

```ruby
require "google/cloud"

gcloud = Google::Cloud.new
firestore = gcloud.firestore
```

The default scope can be overridden with the `scope` option:

```ruby
require "google/cloud"

gcloud  = Google::Cloud.new
platform_scope = "https://www.googleapis.com/auth/cloud-platform"
firestore = gcloud.firestore scope: platform_scope
```

The default database can be overridden with the `database_id` option:

```ruby
require "google/cloud"

gcloud  = Google::Cloud.new
database_id = "my-todo-database"
firestore = gcloud.firestore database_id: database_id
```