This repository contains the source for experimental extensions. Created by Firebase, these experimental extensions may be useful in your project, but don't have the same level of testing and support as the official extensions.
New to Extensions? You can learn more at the Firebase Extensions product page. You can find all official extensions on the Extensions Marketplace.
Each directory in this repo contains the source code for an extension and a README to explain how the extension works, including information about the APIs enabled, resources created, and the access granted to the extension.
List of experimental extensions
Want to install one of these? Visit each extension's linked README for installation instructions.
Set Auth claims with Firestore
Set custom claims for Firebase Auth users from values set in Firestore.
Analyze Toxicity with Perspective API
Use this extension to get toxicity scores from Perspective API for comments written to a Cloud Firestore collection.
Schedule Firestore writes
Write documents to Firestore at an arbitrary time in the future.
Determines the sentiment magnitude and score for given text values in Firestore.
Shorten URLs with Dynamic Links
Shortens URLs written to a specified Cloud Firestore collection using Firebase Dynamic Links.
Serve Firestore Data Bundles
Serves Firestore Data Bundles based on specs defined as Firestore Documents, with the ability to use Hosting and Storage as cache.
Image text extraction
Extracts text from images uploaded to a Cloud Storage bucket and writes extracted text to Firestore.
Label Videos with Video Intelligence API
Extracts labels from your videos uploaded to Storage and writes the extracted labels to Storage as a JSON file.
Mirror GCS objects in Firestore collections
Extension to store links to Google Cloud Storage objects in a Firestore collection.
Transcode Videos with Transcoder API
Transcode video files into formats suitable for consumer distribution.
This repository is maintained by Googlers but is not a supported Firebase product. Issues here are answered by maintainers and other community members on GitHub on a best-effort basis.