Skip to content

Firebase Issues: grammatical errors fixed, improved formatting, added assets #374

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Jun 22, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/troubleshooting/firebase-issues/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"label": "Firebase Troubleshooting"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
keywords: ['database', 'firebase', 'client']
slug: /client-access-to-firestore-expired
title: Client Access to Firestore Expired
---
# Client Access to Firestore Expired

You may receive an email from Firebase with the subject:

**"Client access to your Cloud Firestore database expired"**

This message typically appears when your Firestore database is in **Test Mode** and the access duration has expired.

You are seeing this error message because of the following:

When setting up Firestore for the first time, Firebase offers two rule options:

1. **Test Mode** – Temporarily allows open access (expires after 30 days).
2. **Production Mode** – Starts off restricted and requires secure rules.

![](../assets/20250430121224235710.png)

If you selected **Test Mode** during setup, Firestore access will automatically expire after the preset period. To continue using Firestore, you'll need to update the rules using one of the following options:

- **Option 1: Manage Firestore Rules From FlutterFlow**

You can **[manage and deploy Firestore rules](/integrations/database/cloud-firestore/firestore-rules/)** directly from FlutterFlow.

- **Option 2: Manually Update Firestore Rules in Firebase Console**

Follow these steps to manually update the rules:

1. Go to the **[Firebase Console](https://console.firebase.google.com/)**.
2. Open your project and navigate to **Firestore Database**.
3. Select the **Rules** tab.

From here, you have two options:

- **Option A: Extend Test Mode**

Update the expiration timestamp to a future date if you're still in development.

![](../assets/20250430121224547832.png)

- **Option B: Secure Your Rules for Production**

Update your rules to enforce proper authentication and access controls.


![](../assets/20250430121224874215.png)


If the issue persists, contact us at [[email protected]](mailto:[email protected]) for further assistance.
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
keywords: ['storage', 'firebase', 'cors']
slug: /configuring-cors-for-firebase-storage
title: Configuring CORS for Firebase Storage
---
# Configuring CORS for Firebase Storage

When you deploy your web app to a custom domain, the domain and the Firebase Storage bucket are hosted on different servers. This means that the browser will block requests to the Firebase Storage bucket from your web app, because the origins (the domains and ports) of the two servers are different.

**What is CORS?**

CORS stands for **Cross-Origin Resource Sharing**. It allows you to specify which origins are allowed to access your resources. By configuring CORS, you can tell the browser that your web app is allowed to make requests to the Firebase Storage bucket, even though the two servers are hosted on different domains.

Follow these steps to configure CORS for your Firebase Storage bucket:

1. Open **[Google Cloud Console](https://console.cloud.google.com)**.

2. **Launch the Cloud Shell**:

Click the **Activate Cloud Shell** icon in the top-right corner.

![](../assets/20250430121203371000.png)

Wait for the terminal to load.

![](../assets/20250430121203911156.png)

3. **Run the following Command:**

```jsx
gcloud config set project <your-project-id>
```

4. **Navigate to your Firebase Storage bucket:**

```jsx
cd gs://<your-bucket-name>
```

5. **Run the `cors` Command to Configure CORS:**

```jsx
gsutil cors set cors.json gs://<your-bucket-name>
```

You can also specify a list of allowed headers by running the following command:

```jsx
gsutil cors set cors.json gs://<your-bucket-name> --allowed-headers="Content-Type, Authorization"
```

The `cors.json` file contains a list of origins that are allowed to access your resources. Each origin is a string that identifies a domain or port. For example, the following origin allows access from the domain `www.example.com`:

```jsx
"origins": ["https://www.example.com"]
```

You can also specify a list of allowed headers. The following example allows access to the `Content-Type` and `Authorization` headers:

```jsx
"origins": ["https://www.example.com"], "allowedHeaders": ["Content-Type", "Authorization"]
```

For more information on configuring CORS in Firebase Storage, please see the **[official documentation](https://firebase.google.com/docs/storage/web/download-files#cors_configuration)**.


Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
keywords: ['security', 'error', 'firebase', 'permissions']
slug: /content-manager-firestore-error
title: Content Manager Firestore Error
---

# Content Manager Firestore Error

You may see the following error message when accessing the **FlutterFlow Content Management System (CMS)**:

![](../assets/20250430121517855306.png)

This error typically occurs when Firebase permissions or authentication settings are not properly configured. Follow the steps below to resolve it.

1. **Enable Email/Password Sign-In**

1. Open the **[Firebase Console](https://console.firebase.google.com/)**.
2. Select your project.
3. From the left-hand menu, click **Authentication**.
4. Click **Get started** (if not already started).
5. Go to the **Sign-in method** tab.
6. Ensure **Email/Password** is listed and marked as **Enabled** ✅.

![](../assets/20250430121518159572.png)

:::note
If Email/Password is not enabled, turn it on by clicking the pencil icon and toggling the setting.
:::


2. **Add Required Firebase Project Permissions**

FlutterFlow requires the following roles to be granted to `[email protected]` for proper functionality:

- Editor
- Cloud Functions Admin
- Service Account Admin

To add these permissions:

1. In the **[Firebase Console](https://console.firebase.google.com/)**, open your project.
2. Navigate to **Project Settings** > **Users & Permissions**.
3. Check if `[email protected]` has the roles listed above.

![](../assets/20250430121518370897.png)

:::info
If these roles are missing, the integration is incomplete. Make sure to add all three roles.
:::


3. **Update Firestore Rules in FlutterFlow**

1. In your FlutterFlow project, go to **Firestore** > **Settings**.
2. Scroll down to the **Firestore Rules** section.
3. Click **Deploy/Redeploy** to apply your latest rules.

![](../assets/20250430121518594245.png)


4. **Define Your Firebase Schema**

Make sure your Firebase schema is fully defined. The Content Manager only displays fields that are already defined in your Firebase schema.


5. **Ensure You're Using the Latest FlutterFlow Version**

Press `Ctrl + R` (on Windows) or `Cmd + R` (on macOS) to refresh and ensure you’re on the latest version of FlutterFlow.


6. **Clear Cache and Re-Login**

After completing the above steps:

- Clear your browser cache.
- Log out and log back into FlutterFlow.




:::info[Still not working?]
Try reconfiguring permissions from scratch.

If none of the steps resolve the issue:
1. Remove existing Firebase permissions.
2. Re-add all necessary roles from scratch.
3. Follow the full setup instructions in the **[official FlutterFlow Firebase integration guide](/integrations/firebase/connect-to-firebase/)**.
:::

By following the steps above, you should be able to resolve the error and continue using FlutterFlow CMS without interruptions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
keywords: ['firebase', 'android', 'configuration']
slug: /firebase-android-config-file-missing
title: Firebase Android Config File Missing
---

# Firebase Android Config File Missing

You may see the following warning in FlutterFlow, as shown in the image below:

![](../assets/20250430121357585709.png)

This typically means that the Firebase Android configuration file (`google-services.json`) has not been generated or uploaded to your FlutterFlow project.

Follow the steps below to fix the issue:

1. **Verify your Firebase Setup**

Make sure that Firebase has been fully configured for your project. Follow the **[Firebase setup guide](/integrations/firebase/connect-to-firebase/)** to ensure all required steps have been completed.

2. **Open Project Settings in FlutterFlow**

- Navigate to your FlutterFlow project.
- From the left menu, select **Settings > Firebase**.

![](../assets/20250430121357870887.png)

3. **Regenerate your Firebase Configuration Files**

- In the Firebase Settings screen, click **Regenerate Firebase Files** to create new configuration files and upload them automatically.

4. **Contact Support if Needed**

If you continue to experience issues, reach out to [FlutterFlow Support](mailto:[email protected]) for further assistance.

:::note
The configuration file is required for successful builds and deployment on Android. Make sure it remains up-to-date if you make changes in your Firebase project.
:::
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
keywords: ['storage', 'firebase', 'flutterflow']
slug: /firebase-storage-limits-in-flutterflow
title: Firebase Storage Limits in FlutterFlow
---

# Firebase Storage Limits in FlutterFlow

Managing Firebase Storage properly is essential for controlling your app's file storage and associated costs in FlutterFlow. This article summarizes the current limits and best practices following Firebase’s September 2024 changes.

## Firebase Storage Plans and Limits

- **Blaze Plan (Pay-as-you-go)**

- Firebase Storage (Cloud Storage for Firebase) is only available on the Blaze plan for new Firebase projects.
- Storage charges are based on usage volume.
- The price per GB/TB decreases as your usage increases.
- Refer to the **[Firebase Pricing page](https://firebase.google.com/pricing)** for current rates.

- **Spark Plan (Free Tier)**

- For projects created after September 2024, Cloud Storage for Firebase is **no longer available** on the Spark plan.
- To use file storage (uploads, images, videos, etc.) with Firebase Storage, you must upgrade to the Blaze plan.

:::info
If your Firebase project was created before the September 2024 policy change, you may still have limited access to Firebase Storage under legacy conditions. However, new projects must follow the updated Blaze-only policy.
:::

## Firebase Storage Operations Limits

- Firebase imposes limits on the number of operations (uploads, downloads, deletes) based on your plan.
- With Blaze, these limits are generally higher but still subject to quotas depending on your usage volume.
- Monitor your app’s usage patterns to avoid unexpected failures or costs.

## Best Practices for Managing Firebase Storage

- Regularly delete unused or unnecessary files.
- Compress large files (especially images and videos) before uploading.
- Actively monitor storage usage in the Firebase Console.
- Set up automated cleanup processes for apps with large or growing data volumes.

:::tip
Proactive storage management helps control costs and maintain app performance.
:::

:::info[Additional Resources]
- [Firebase Pricing](https://firebase.google.com/pricing)
- [Firebase Storage FAQ (September 2024 Changes)](https://firebase.google.com/docs/storage/faqs-storage-changes-announced-sept-2024)
- [Firebase Storage Documentation](https://firebase.google.com/docs/storage)
- [FlutterFlow Docs: Storage](/integrations/firebase-storage/storage-rules/)
:::

Always review your Firebase plan details to ensure you're aligned with the most current pricing model and storage policies.
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
keywords: ['firebase', 'api', 'document']
slug: /get-the-sum-of-firebase-document-or-api-values
title: Get the Sum of Firebase Document or API Values
---
# Get the Sum of Firebase Document or API Values

Sometimes you need to display a total, such as a subtotal or count based on data fetched from Firebase or an API. This guide walks you through the steps to calculate and display that sum in FlutterFlow.

:::info[Prerequisites]
- A working Firebase collection or API that returns numeric values.
- A FlutterFlow UI component (example, **Text**) where the sum will be displayed.
:::

**Steps to Calculate the Sum of Firebase Document or API Values**

1. **Identify where to Display the Total**

Decide where in your app the total will appear. For example, insert a **Text** widget that will show the computed sum.

![](../assets/20250430121219360101.png)

2. **Prepare your Data Type**

Next, you need to specify what kind of data you're adding up. For example, if you're working with numbers with decimal points, you'll classify your data as double. Make sure to indicate that you're dealing with a list of these values.

![](../assets/20250430121219606895.png)


3. **Retrieve and Map your Data**

When fetching data from Firebase or an API, extract the values you want to sum. Use the `map()` function to create a list of those values.

![](../assets/20250430121219871237.png)

4. **Calculate the Sum**

With your list of values ready, store them in a variable (let's call it `var1`). Then, decide on the format you want for your result. Use the `reduce` function to add up all the values in your list, `var1`, to get your total sum.

![](../assets/20250430121220084430.png)

5. **Checking Your Results**

After completing these steps, you should have the total sum displayed where you need it. If it looks right, you've successfully calculated the sum!

[](../assets/20250430121220338400.png)

:::tip[Trobleshooting]
- Use `.isNotEmpty` to prevent errors when the list is empty.
- Format the output using `.toStringAsFixed(2)` to show 2 decimal places if needed.
- Optional: Store the sum in a global variable for use across multiple pages.
:::
Loading