google_firebaserules_release

For more information, see:

Example Usage - firestore_release

Creates a Firebase Rules Release to Cloud Firestore

resource "google_firebaserules_release" "primary" {
  name         = "cloud.firestore/database"
  ruleset_name = "projects/my-project-name/rulesets/${google_firebaserules_ruleset.firestore.name}"
  project      = "my-project-name"

  lifecycle {
    replace_triggered_by = [
      google_firebaserules_ruleset.firestore
    ]
  }
}

resource "google_firebaserules_ruleset" "firestore" {
  source {
    files {
      content = "service cloud.firestore {match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } }"
      name    = "firestore.rules"
    }
  }

  project = "my-project-name"
}

Example Usage - storage_release

Creates a Firebase Rules Release for a Storage bucket

resource "google_firebaserules_release" "primary" {
  provider     = google-beta
  name         = "firebase.storage/${google_storage_bucket.bucket.name}"
  ruleset_name = "projects/my-project-name/rulesets/${google_firebaserules_ruleset.storage.name}"
  project      = "my-project-name"

  lifecycle {
    replace_triggered_by = [
      google_firebaserules_ruleset.storage
    ]
  }
}

# Provision a non-default Cloud Storage bucket.
resource "google_storage_bucket" "bucket" {
  provider = google-beta
  project  = "my-project-name"
  name     = "bucket"
  location = "us-west1"
}

# Make the Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules.
resource "google_firebase_storage_bucket" "bucket" {
  provider  = google-beta
  project   = "my-project-name"
  bucket_id = google_storage_bucket.bucket.name
}

# Create a ruleset of Firebase Security Rules from a local file.
resource "google_firebaserules_ruleset" "storage" {
  provider = google-beta
  project  = "my-project-name"
  source {
    files {
      name    = "storage.rules"
      content = "service firebase.storage {match /b/{bucket}/o {match /{allPaths=**} {allow read, write: if request.auth != null;}}}"
    }
  }

  depends_on = [
    google_firebase_storage_bucket.bucket
  ]
}

Argument Reference

The following arguments are supported:


Attributes Reference

In addition to the arguments listed above, the following computed attributes are exported:

Timeouts

This resource provides the following Timeouts configuration options:

Import

Release can be imported using any of these accepted formats:

In Terraform v1.5.0 and later, use an import block to import Release using one of the formats above. For example:

import {
  id = "projects/{{project}}/releases/{{name}}"
  to = google_firebaserules_release.default
}

When using the terraform import command, Release can be imported using one of the formats above. For example:

$ terraform import google_firebaserules_release.default projects/{{project}}/releases/{{name}}