Google Cloud Firestore¶
The Google Cloud Firestore modules enable you to work with documents in your Google Cloud Firestore.
Getting Started with Google Cloud Firestore¶
Prerequisites
-
A Firebase project (created via Google Firebase Console).
Note
The module dialog fields that are displayed in bold (in the Ibexa Connect scenario, not in this documentation article) are mandatory!
Connecting Google Cloud Firestore to Ibexa Connect¶
To connect your Google Cloud Firestore to Ibexa Connect, you'll need to obtain the project's Client ID and Client Secret in the Google Cloud Platform, and create a new Firebase project via Google Firebase Console.
Obtaining Client ID and Client Secret¶
-
Sign in to Google Cloud Platform using your Google credentials.
-
Click Select a project > NEW PROJECT.
-
Enter the desired project name, and click the CREATE button.
-
Go to APIs & Services > Library.
-
Search and enable the following required APIs:
-
Google Cloud Firestore API
-
Firebase Management API
-
Google Cloud Storage JSON API
The desired service option should display as you type. Click on the API/service you want to connect to Ibexa Connect.
-
-
Click the ENABLE button to enable the selected API.
-
Open APIs & Services > Library, and search and enable the two remaining required APIs (see step 5 above).
-
Open the OAuth consent screen settings*.*
-
Choose the External option, and click the CREATE button.
Note
You will not be charged when selecting this option! For more details, please refer to Google's exceptions to verification requirements.
-
Fill in the required fields as follows, and then click the Save button:
Application name
Enter the name of the app asking for consent.
For example,
Ibexa Connect
.Scopes for Google APIs
Click the Add scope button to open the Add scope dialog.
Add required scopes.
SERVICE/API
REQUIRED SCOPES
Cloud Firestore API
Google Cloud Storage JSON API
Firebase Management API
Authorized domains
Make.com
integromat.com
Note
You don't need to submit your consent screen and application for verification by Google. Just click the Save button after you fill in the required fields on this page.
-
Go to Credentials. Click on the +CREATE CREDENTIALS, and select the OAuth Client ID option.
-
Fill in the required fields as follows, and then click the CREATE button to create the application:
Application type Web application
Name e.g. Ibexa Connect
Authorized redirect URIs https://www.integromat.com/oauth/cb/google-custom
-
A dialog containing the app's Client ID and Client Secret is displayed. Save them to a safe place for later use.
-
Go to Ibexa Connect, open the Create a connection dialog of the desired Google Cloud Firestore module, enter the Client ID and Client Secret from step 13 above in the respective fields, and click Continue.
-
Sign in with your Google account.
-
The This app isn't verified window may appear.
Note
The app = your OAuth client you have created above.
-
Click on the Advanced link, and then on the Go to Ibexa Connect (unsafe) link to allow access using your custom OAuth client.
-
Click Allow (2x) to grant Ibexa Connect permission.
-
Click the Allow button to confirm your choices.
The connection to your Google Cloud Firestore account has been established. Now, create a Firebase project and a Firestore database.
Creating a Firebase Project¶
-
Sign in to Google Firebase Console using your Google credentials.
-
Click Create a project.
-
Enter the desired project name, and click the Create button. Set Google Analytics settings as needed.
-
Create a Firestore Database.
Now, you can build your scenario using the Google Cloud Firestore modules.
Documents¶
Watch New Documents¶
Retrieves document details when a document is created in the specified collection.
Input the collection path |
Select whether to specify the project, database, and collection manually (By Mapping) or using a drop-down menu (By Dropdown). |
Collection Path |
Enter the collection path in the following format:
For example: projects/nifty-anyway-295114/databases/(default)/documents/TestCollection |
Limit |
Enter the maximum number of documents Ibexa Connect will return during one execution cycle. |
Mask |
Specify field paths on a document you want to return. If a document has a field that is not present in this mask, that field will not be returned in the response. |
Create a Document¶
Creates a new document.
Input the collection path |
Select whether to specify the project, database, and collection manually (By Mapping) or using a drop-down menu (By Dropdown). |
||||
Collection Path |
Enter the collection path in the following format:
For example: projects/nifty-anyway-295114/databases/(default)/documents/TestCollection |
||||
Document Fields |
Specify the name and value of the document's field(s) you want to add to the collection.
|
||||
Document ID |
Specify the document ID. If not specified, an ID will be assigned by the service. For best performance, let Firestore assign the ID, or make sure to avoid hotspots. For best compatibility with the API, avoid using special characters. |
||||
Mask |
Specify field paths on a document you want to return. If a document has a field that is not present in this mask, that field will not be returned in the response. |
Get Documents¶
Retrieves specified documents.
Project |
Select the project or enter the project ID of the project you want to retrieve documents from. |
Documents |
Specify the documents you want to retrieve. Enter the document path in the following format:
For example: projects/nifty-anyway-293ad4/databases/(default)/documents/Test/FhmIXJYB7fQ0iURF2F4I |
Limit |
Set the maximum number of documents Ibexa Connect will return during one execution cycle. |
Consistency Selector |
Select the consistency mode for this transaction.
|
List Documents¶
Retrieves all documents in the collection.
Input the collection path |
Select whether to specify the project, database, and collection manually (By Mapping) or using a drop-down menu (By Dropdown). |
Collection Path |
Enter the collection path in the following format:
For example: projects/nifty-anyway-295114/databases/(default)/documents/TestCollection |
Limit |
Enter the maximum number of documents Ibexa Connect will return during one execution cycle. |
Show Missing |
Select if the list should show missing documents. A missing document is a document that does not exist but has sub-documents. These documents will be returned with a key, but will not have the fields Document.create_time, or Document.update_time set. |
Order By |
Specify the field to order results by. |
Mask |
Specify field paths on the document you want to return. If a document has a field that is not present in this mask, that field will not be returned in the response. |
Consistency Selector |
Select the consistency mode for this transaction.
|
List Collection IDs¶
Input the document path |
Select whether to specify the project, database, and collection manually (By Mapping) or using a drop-down menu (By Dropdown). |
Document Path |
Enter the document path in the following format:
For example: projects/nifty-anyway-293ad4/databases/(default)/documents/Test/FhmIXJYB7fQ0iURF2F4I |
Limit |
Set the maximum number of collection IDs Ibexa Connect will return during one execution cycle. |
Query Documents¶
Runs a query.
Input the document path |
Select whether to specify the project, database, and collection manually (By Mapping) or using a drop-down menu (By Dropdown). |
Document Path |
Enter the document path in the following format:
For example: projects/nifty-anyway-293ad4/databases/(default)/documents/Test/FhmIXJYB7fQ0iURF2F4I |
(Select) Fields |
Specify the fields you want to return. If no fields are specified, all fields will be returned. |
(From) Collection ID |
Specify the collection to query. Enter the collection ID. When set, selects only collections with this ID. |
All Descendants |
Select the No option to select only collections that are immediate children of the parent specified in the query request. When enabled, this option selects all descendant collections. |
Where |
Set up the filter settings. Refer to the list of operators. |
Order By |
Specify the field you want to order results by. |
Limit |
Enter the maximum number of documents Ibexa Connect will return during one execution cycle. |
Note
Every query requires an Index.For the most basic queries, Firestore creates indexes by default.
But, some queries require you to set up an Index manually. Follow the steps below to set up the Index.
-
After sending a request that requires setting up the Index manually, the Firestore module will provide a link in the Error Message.
-
Open the link in your browser. You will be redirected to Firestore > Indexes.
-
Click the Create Index button. Wait a few minutes until Firestore completes the index creation.
-
Now, the Query Documents module will work without an error.
Update a Document¶
Updates or inserts a document.
Input the document path |
Select whether to specify the project, database, and collection manually (By Mapping) or using a drop-down menu (By Dropdown). |
Document Path |
Enter the document path in the following format:
For example: projects/nifty-anyway-293ad4/databases/(default)/documents/Test/FhmIXJYB7fQ0iURF2F4I |
Add or Update Fields |
Specify document's fields you want to add or update. Add: Enter the name that does not exist in the document, and specify the desired value Update: Enter the name of the existing field, and specify the new value. |
Delete Fields |
Specify the fields you want to remove from the document. If the field is in both |
Mask |
Specify field paths on a document you want to return. If a document has a field that is not present in this mask, that field will not be returned in the response. |
Delete a Document¶
Deletes a single document.
Input the document path |
Select whether to specify the project, database, and collection manually (By Mapping) or using a drop-down menu (By Dropdown). |
Document Path |
Enter the document path in the following format:
For example: projects/nifty-anyway-293ad4/databases/(default)/documents/Test/FhmIXJYB7fQ0iURF2F4I |
Storage¶
Caution
Paid Firestore account: Blaze Plan is required to use the Storage modules.
Backup to Google Cloud Storage¶
Exports a copy of all or a subset of documents from Google Cloud Firestore to Google Cloud Storage.
Please read the How to Backup a Firestore Database, the No-code Way article.
Restore from Google Cloud Storage¶
Imports documents into Google Cloud Firestore. Existing documents with the same name are overwritten.
Make an API Call¶
Allows you to perform a custom API call.
URL |
Enter a path relative to | For the list of available endpoints, refer to the Cloud Firestore API Documentation. |
Method
Select the HTTP method you want to use:
GET
to retrieve information for an entry.
POST
to create a new entry.
PUT
to update/replace an existing entry.
PATCH
to make a partial entry update.
DELETE
to delete an entry.
Headers
Enter the desired request headers. You don't have to add authorization headers; we've already done this for you.
Query String
Enter the request query string.
Body
Enter the body content for your API call.
Example of Use - List Documents¶
The following API call returns all documents in the specified collection in your Cloud Firestore account:
URL:/v1/projects/{project_id}/databases/(default)/documents/{collection_id}/
Method:
GET
The result can be found in the module's Output under Bundle > *Body > documents.*In our example, 3 documents were returned: