diff --git a/docs/troubleshooting/assets/20250430121118024255.png b/docs/troubleshooting/assets/20250430121118024255.png new file mode 100644 index 00000000..04960e51 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121118024255.png differ diff --git a/docs/troubleshooting/assets/20250430121118320891.png b/docs/troubleshooting/assets/20250430121118320891.png new file mode 100644 index 00000000..14281db6 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121118320891.png differ diff --git a/docs/troubleshooting/assets/20250430121118592064.png b/docs/troubleshooting/assets/20250430121118592064.png new file mode 100644 index 00000000..88a773fa Binary files /dev/null and b/docs/troubleshooting/assets/20250430121118592064.png differ diff --git a/docs/troubleshooting/assets/20250430121203371000.png b/docs/troubleshooting/assets/20250430121203371000.png new file mode 100644 index 00000000..6b9e7040 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121203371000.png differ diff --git a/docs/troubleshooting/assets/20250430121203619318.png b/docs/troubleshooting/assets/20250430121203619318.png new file mode 100644 index 00000000..15c8ebd6 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121203619318.png differ diff --git a/docs/troubleshooting/assets/20250430121203911156.png b/docs/troubleshooting/assets/20250430121203911156.png new file mode 100644 index 00000000..2f0c940b Binary files /dev/null and b/docs/troubleshooting/assets/20250430121203911156.png differ diff --git a/docs/troubleshooting/assets/20250430121219360101.png b/docs/troubleshooting/assets/20250430121219360101.png new file mode 100644 index 00000000..436addd6 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121219360101.png differ diff --git a/docs/troubleshooting/assets/20250430121219606895.png b/docs/troubleshooting/assets/20250430121219606895.png new file mode 100644 index 00000000..a64dca48 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121219606895.png differ diff --git a/docs/troubleshooting/assets/20250430121219871237.png b/docs/troubleshooting/assets/20250430121219871237.png new file mode 100644 index 00000000..7e5c9903 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121219871237.png differ diff --git a/docs/troubleshooting/assets/20250430121220084430.png b/docs/troubleshooting/assets/20250430121220084430.png new file mode 100644 index 00000000..577aee53 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121220084430.png differ diff --git a/docs/troubleshooting/assets/20250430121220338400.png b/docs/troubleshooting/assets/20250430121220338400.png new file mode 100644 index 00000000..03fd1157 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121220338400.png differ diff --git a/docs/troubleshooting/assets/20250430121224235710.png b/docs/troubleshooting/assets/20250430121224235710.png new file mode 100644 index 00000000..fa8e51ec Binary files /dev/null and b/docs/troubleshooting/assets/20250430121224235710.png differ diff --git a/docs/troubleshooting/assets/20250430121224547832.png b/docs/troubleshooting/assets/20250430121224547832.png new file mode 100644 index 00000000..a5157380 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121224547832.png differ diff --git a/docs/troubleshooting/assets/20250430121224874215.png b/docs/troubleshooting/assets/20250430121224874215.png new file mode 100644 index 00000000..df356ebb Binary files /dev/null and b/docs/troubleshooting/assets/20250430121224874215.png differ diff --git a/docs/troubleshooting/assets/20250430121304770472.png b/docs/troubleshooting/assets/20250430121304770472.png new file mode 100644 index 00000000..4bf03f3d Binary files /dev/null and b/docs/troubleshooting/assets/20250430121304770472.png differ diff --git a/docs/troubleshooting/assets/20250430121305056379.png b/docs/troubleshooting/assets/20250430121305056379.png new file mode 100644 index 00000000..c55cb112 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121305056379.png differ diff --git a/docs/troubleshooting/assets/20250430121305295728.png b/docs/troubleshooting/assets/20250430121305295728.png new file mode 100644 index 00000000..27770f6c Binary files /dev/null and b/docs/troubleshooting/assets/20250430121305295728.png differ diff --git a/docs/troubleshooting/assets/20250430121305526883.png b/docs/troubleshooting/assets/20250430121305526883.png new file mode 100644 index 00000000..588942db Binary files /dev/null and b/docs/troubleshooting/assets/20250430121305526883.png differ diff --git a/docs/troubleshooting/assets/20250430121305771267.png b/docs/troubleshooting/assets/20250430121305771267.png new file mode 100644 index 00000000..6487fde1 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121305771267.png differ diff --git a/docs/troubleshooting/assets/20250430121306066982.png b/docs/troubleshooting/assets/20250430121306066982.png new file mode 100644 index 00000000..64eb91b6 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121306066982.png differ diff --git a/docs/troubleshooting/assets/20250430121306294908.png b/docs/troubleshooting/assets/20250430121306294908.png new file mode 100644 index 00000000..cb8b31c7 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121306294908.png differ diff --git a/docs/troubleshooting/assets/20250430121306553330.png b/docs/troubleshooting/assets/20250430121306553330.png new file mode 100644 index 00000000..436d248f Binary files /dev/null and b/docs/troubleshooting/assets/20250430121306553330.png differ diff --git a/docs/troubleshooting/assets/20250430121306835223.png b/docs/troubleshooting/assets/20250430121306835223.png new file mode 100644 index 00000000..d6598a5a Binary files /dev/null and b/docs/troubleshooting/assets/20250430121306835223.png differ diff --git a/docs/troubleshooting/assets/20250430121309740417.png b/docs/troubleshooting/assets/20250430121309740417.png new file mode 100644 index 00000000..f2e4ca46 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121309740417.png differ diff --git a/docs/troubleshooting/assets/20250430121310019673.png b/docs/troubleshooting/assets/20250430121310019673.png new file mode 100644 index 00000000..838ce613 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121310019673.png differ diff --git a/docs/troubleshooting/assets/20250430121310317285.png b/docs/troubleshooting/assets/20250430121310317285.png new file mode 100644 index 00000000..ce14ca2a Binary files /dev/null and b/docs/troubleshooting/assets/20250430121310317285.png differ diff --git a/docs/troubleshooting/assets/20250430121310619096.png b/docs/troubleshooting/assets/20250430121310619096.png new file mode 100644 index 00000000..0ed08202 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121310619096.png differ diff --git a/docs/troubleshooting/assets/20250430121310959552.png b/docs/troubleshooting/assets/20250430121310959552.png new file mode 100644 index 00000000..79014d47 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121310959552.png differ diff --git a/docs/troubleshooting/assets/20250430121357585709.png b/docs/troubleshooting/assets/20250430121357585709.png new file mode 100644 index 00000000..f68eb3ac Binary files /dev/null and b/docs/troubleshooting/assets/20250430121357585709.png differ diff --git a/docs/troubleshooting/assets/20250430121357870887.png b/docs/troubleshooting/assets/20250430121357870887.png new file mode 100644 index 00000000..df7a333c Binary files /dev/null and b/docs/troubleshooting/assets/20250430121357870887.png differ diff --git a/docs/troubleshooting/assets/20250430121507937548.png b/docs/troubleshooting/assets/20250430121507937548.png new file mode 100644 index 00000000..229fc6a7 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121507937548.png differ diff --git a/docs/troubleshooting/assets/20250430121508288240.png b/docs/troubleshooting/assets/20250430121508288240.png new file mode 100644 index 00000000..cf3184da Binary files /dev/null and b/docs/troubleshooting/assets/20250430121508288240.png differ diff --git a/docs/troubleshooting/assets/20250430121508604665.png b/docs/troubleshooting/assets/20250430121508604665.png new file mode 100644 index 00000000..7a17da5a Binary files /dev/null and b/docs/troubleshooting/assets/20250430121508604665.png differ diff --git a/docs/troubleshooting/assets/20250430121508962664.png b/docs/troubleshooting/assets/20250430121508962664.png new file mode 100644 index 00000000..97153aaf Binary files /dev/null and b/docs/troubleshooting/assets/20250430121508962664.png differ diff --git a/docs/troubleshooting/assets/20250430121517855306.png b/docs/troubleshooting/assets/20250430121517855306.png new file mode 100644 index 00000000..77de10ef Binary files /dev/null and b/docs/troubleshooting/assets/20250430121517855306.png differ diff --git a/docs/troubleshooting/assets/20250430121518159572.png b/docs/troubleshooting/assets/20250430121518159572.png new file mode 100644 index 00000000..2740581d Binary files /dev/null and b/docs/troubleshooting/assets/20250430121518159572.png differ diff --git a/docs/troubleshooting/assets/20250430121518370897.png b/docs/troubleshooting/assets/20250430121518370897.png new file mode 100644 index 00000000..42d102d9 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121518370897.png differ diff --git a/docs/troubleshooting/assets/20250430121518594245.png b/docs/troubleshooting/assets/20250430121518594245.png new file mode 100644 index 00000000..229fc6a7 Binary files /dev/null and b/docs/troubleshooting/assets/20250430121518594245.png differ diff --git a/docs/troubleshooting/firebase-issues/_category_.json b/docs/troubleshooting/firebase-issues/_category_.json new file mode 100644 index 00000000..eb08677c --- /dev/null +++ b/docs/troubleshooting/firebase-issues/_category_.json @@ -0,0 +1,3 @@ +{ + "label": "Firebase Troubleshooting" +} \ No newline at end of file diff --git a/docs/troubleshooting/firebase-issues/client_access_to_firestore_expired.md b/docs/troubleshooting/firebase-issues/client_access_to_firestore_expired.md new file mode 100644 index 00000000..ebeb6c23 --- /dev/null +++ b/docs/troubleshooting/firebase-issues/client_access_to_firestore_expired.md @@ -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 [support@flutterflow.io](mailto:support@flutterflow.io) for further assistance. diff --git a/docs/troubleshooting/firebase-issues/configuring_cors_for_firebase_storage.md b/docs/troubleshooting/firebase-issues/configuring_cors_for_firebase_storage.md new file mode 100644 index 00000000..5c6f8aa8 --- /dev/null +++ b/docs/troubleshooting/firebase-issues/configuring_cors_for_firebase_storage.md @@ -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)**. + + diff --git a/docs/troubleshooting/firebase-issues/content_manager_firestore_error.md b/docs/troubleshooting/firebase-issues/content_manager_firestore_error.md new file mode 100644 index 00000000..6ebb9f06 --- /dev/null +++ b/docs/troubleshooting/firebase-issues/content_manager_firestore_error.md @@ -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 `firebase@flutterflow.io` 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 `firebase@flutterflow.io` 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. \ No newline at end of file diff --git a/docs/troubleshooting/firebase-issues/firebase_android_config_file_missing.md b/docs/troubleshooting/firebase-issues/firebase_android_config_file_missing.md new file mode 100644 index 00000000..fd98e399 --- /dev/null +++ b/docs/troubleshooting/firebase-issues/firebase_android_config_file_missing.md @@ -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:support@flutterflow.io) 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. +::: diff --git a/docs/troubleshooting/firebase-issues/firebase_storage_limits_in_flutterflow.md b/docs/troubleshooting/firebase-issues/firebase_storage_limits_in_flutterflow.md new file mode 100644 index 00000000..8f891a5b --- /dev/null +++ b/docs/troubleshooting/firebase-issues/firebase_storage_limits_in_flutterflow.md @@ -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. diff --git a/docs/troubleshooting/firebase-issues/get_the_sum_of_firebase_document_or_api_values.md b/docs/troubleshooting/firebase-issues/get_the_sum_of_firebase_document_or_api_values.md new file mode 100644 index 00000000..18e896c0 --- /dev/null +++ b/docs/troubleshooting/firebase-issues/get_the_sum_of_firebase_document_or_api_values.md @@ -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. +::: \ No newline at end of file diff --git a/docs/troubleshooting/firebase-issues/missing_firebase_storage_in_flutterflow_settings.md b/docs/troubleshooting/firebase-issues/missing_firebase_storage_in_flutterflow_settings.md new file mode 100644 index 00000000..9ece2a91 --- /dev/null +++ b/docs/troubleshooting/firebase-issues/missing_firebase_storage_in_flutterflow_settings.md @@ -0,0 +1,35 @@ +--- +keywords: ['storage', 'firebase', 'missing'] +slug: /missing-firebase-storage-in-flutterflow-settings +title: Missing Firebase Storage in FlutterFlow Settings +--- + +# Missing Firebase Storage in FlutterFlow Settings + +When setting up Firebase Storage in your FlutterFlow project, you may notice that the **Firebase Storage** option is missing from the **Firebase Settings** tab. + + ![](../assets/20250430121309740417.png) + +This usually happens when Firebase Storage has not been enabled for your project in the Firebase Console. Until it’s enabled there, the option won’t appear in FlutterFlow. + +Follow these steps to enable Firebase Storage and make it available in your FlutterFlow settings: + +1. In your FlutterFlow project, click **Firebase** from the left menu, then click **Open Firebase Console**. + + ![](../assets/20250430121310019673.png) + +2. In the Firebase Console, go to the **Build** menu and select **Storage**. + + ![](../assets/20250430121310317285.png) + +3. Click **Get started** and complete the setup process. + + ![](../assets/20250430121310619096.png) + +4. After successfully creating the storage bucket, return to FlutterFlow. You should now see the **Rules** option under **Firebase Settings**. + + ![](../assets/20250430121310959552.png) + +:::note +After setting up Firebase Storage, it may take up to one hour for the changes to appear in FlutterFlow. +::: \ No newline at end of file diff --git a/docs/troubleshooting/firebase-issues/resolving_firestore_index_deployment_issues.md b/docs/troubleshooting/firebase-issues/resolving_firestore_index_deployment_issues.md new file mode 100644 index 00000000..5b9da0e6 --- /dev/null +++ b/docs/troubleshooting/firebase-issues/resolving_firestore_index_deployment_issues.md @@ -0,0 +1,51 @@ +--- +keywords: ['firebase', 'deployment', 'firestore'] +slug: /resolving-firestore-index-deployment-issues +title: Resolving Firestore Index Deployment Issues +--- +# Resolving Firestore Index Deployment Issues + +If your Firestore indexes are not being deployed as expected, follow these troubleshooting steps to resolve the issue and ensure your app performs correctly. + +![](../assets/20250430121118024255.png) + +1. **Enable Email Sign-In** + + - Open your Firebase project. + - Go to **Authentication** > **Sign-in method**. + - Enable **Email/Password** sign-in. + +2. **Grant Proper Permissions** + + - In your Firebase project, open **Project Settings** > **Users and permissions**. + - Add firebase@flutterflow.io as a member. + - Assign the following roles: + - **Editor** + - **Cloud Functions Admin** + - **Service Account User** + + ![](../assets/20250430121118320891.png) + +3. **Update Firestore Rules** + + - Update your Firestore rules in both Firebase Console and FlutterFlow. + - Ensure they match your app’s data access requirements. + - Follow the detailed steps in the **[Firestore Rules documentation](../integrations/database/cloud-firestore/firestore-rules/)** to correctly configure your rules. + + ![](../assets/20250430121118592064.png) + +4. **Verify Index Deployment** + + - In the Firebase Console, go to **Firestore Database** > **Indexes**. + - Check that your indexes have been deployed. + + :::note + Deployment may take a few minutes. Refresh the page if you don’t see updates immediately. + ::: + +:::tip[Additional Tips] +- Make sure you completed all the steps above before retrying deployment. +- For advanced troubleshooting, check Firebase logs and permissions in Google Cloud Console. +::: + +Following these steps should help resolve Firestore index deployment issues in FlutterFlow. diff --git a/docs/troubleshooting/firebase-issues/unable_to_validate_firestore_schema.md b/docs/troubleshooting/firebase-issues/unable_to_validate_firestore_schema.md new file mode 100644 index 00000000..b516575c --- /dev/null +++ b/docs/troubleshooting/firebase-issues/unable_to_validate_firestore_schema.md @@ -0,0 +1,96 @@ +--- +keywords: ['schema', 'database', 'firestore'] +slug: /unable-to-validate-firestore-schema +title: Unable to Validate Firestore Schema +--- + +# Unable to Validate Firestore Schema + +When trying to validate your Firestore Schema, you may encounter the error as seen in the image below: + +![](../assets/20250430121304770472.png) + +**Troubleshooting Steps:** + +1. **Verify that you have Created a Firestore database** + + Ensure that you have already created a Firestore database in your Firebase project. + + ![](../assets/20250430121305056379.png) + +2. **Check the Database Mode** + + A database in Test Mode may not work properly for FlutterFlow integration. + + :::note + After creating the database in Test Mode, there is no direct visual option to switch to Production Mode. You need to update the Firebase security rules manually. However, if you deploy the rules from FlutterFlow, this step is handled automatically. + ::: + + **Steps to Update your Database Rules**: + + 1. Go to your Firebase project. + 2. Select **Cloud Firestore**. + 3. Navigate to **Rules**. + + You will see something like this: + + ![](../assets/20250430121305295728.png) + + Update the rules as needed. + + :::note + Ensure that you specify the correct `rules_version` and verify your configuration. + ::: + + ![](../assets/20250430121305526883.png) + + 4. Click **Publish** to apply the changes. + +3. Assign the necessary permissions to `firebase@flutterflow.io` + + You must grant the required cloud permissions to `firebase@flutterflow.io`: + + - **Editor** + - **Cloud Functions Admin** + - **Service Account** + + In the Firebase Console: + + 1. Open your project. + 2. Go to **Project Settings** > **Users & Permissions**. + 3. Confirm that the required roles are assigned to `firebase@flutterflow.io`. + + If you don't see these roles assigned, you need to complete this step: + + ![](../assets/20250430121305771267.png) + +4. Ensure you have at least one collection created in FlutterFlow + + In FlutterFlow, select the **Firestore** tab from the left menu. If no collections are listed, create at least one collection. + + ![](../assets/20250430121306066982.png) + +5. **Confirm that your collections have documents** + + Use FlutterFlow's CMS to verify that your collections contain at least one document: + + - Select **Manage Content**. + - Check each collection to confirm that data exists. + + If no documents exist, add at least one: + + ![](../assets/20250430121306294908.png) + + ![](../assets/20250430121306553330.png) + +6. **Deploy Firestore rules from FlutterFlow** + + In your FlutterFlow project: + + 1. Select **Firestore** > **Settings**. + 2. Scroll down to **Firestore Rules**. + 3. Select **Deploy** (or **Redeploy** if needed). + + ![](../assets/20250430121306835223.png) + + diff --git a/docs/troubleshooting/firebase-issues/updating_firestore_security_rules.md b/docs/troubleshooting/firebase-issues/updating_firestore_security_rules.md new file mode 100644 index 00000000..a64ec3b3 --- /dev/null +++ b/docs/troubleshooting/firebase-issues/updating_firestore_security_rules.md @@ -0,0 +1,36 @@ +--- +keywords: ['rules', 'firestore', 'updating'] +slug: /updating-firestore-security-rules +title: Updating Firestore Security Rules +--- +# Updating Firestore Security Rules + +Most backend issues are generated by the misconfiguration of the Firestore Security Rules. These backend issues may include Grey Screen errors, Infinite Loading screen, Firestore record creating error, Data mismatch errors, etc. + +To solve these issues, the Firestore rules have to be updated, for which you can follow the given series of steps: + +- **Update Your Firestore Rules** + + From within your FlutterFlow project, select **Firestore** > **Settings** > Scroll down to **Firestore Rules** > select **Deploy**/**Redploy**. + + ![](../assets/20250430121507937548.png) + +- **Update Firestore Indexes** + + The next step is to see if the Firestore Rules and Indexes are **Out of Date** or **Not Deployed** (as shown in the image below). If yes, click on the blue **Deploy** button to push the latest rules. + + ![](../assets/20250430121508288240.png) + + After clicking on the **Deploy** button, a confirmation dialog would be shown, highlighting the changes in the rules that are being made from the deployment. + + This compares the existing rules in Firestore and highlights what changes are being made in the Firestore rules. These changes are required when a new collection is created or is been edited or if the rules are Out of Date. + + ![](../assets/20250430121508604665.png) + + You can review the changes, and then you can click on the **Deploy Now** button. An orange loading indicator would be shown, which means that the rules are getting deployed (This step usually finishes within less than a minute, and the loading indicator is replaced with a Green Checkbox button). + +- **Validate the Firestore Schema** + + After completing the steps above, validate the Firestore schema by clicking on the blue **Validate** button. This ensures that everything is configured correctly and the Firestore collection schema matches with the Collection schema configured in FlutterFlow. + + ![](../assets/20250430121508962664.png) \ No newline at end of file