Skip to content

Commit 1761c49

Browse files
committed
moved articles from the uncategorized folder to various aspect of document tree. Little formatting, no assets added
1 parent ac5a4ca commit 1761c49

File tree

70 files changed

+3758
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+3758
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
keywords: ['dependencies', 'pubspec.yaml', 'custom widgets', 'flutterflow']
3+
slug: /add-custom-dependencies
4+
title: Add Dependencies to Custom Widgets or Actions
5+
---
6+
7+
# Add Dependencies to Custom Widgets or Actions
8+
9+
FlutterFlow does not currently support adding dependencies to the entire project via the `pubspec.yaml` file. However, you can include dependencies by associating them with specific **Custom Widgets** or **Custom Actions**.
10+
11+
This approach ensures that only the relevant code includes the necessary packages.
12+
13+
:::info[Prerequisites]
14+
To use this method, you must have a custom widget or action already created within your FlutterFlow project.
15+
:::
16+
17+
## Steps to Add a Dependency
18+
19+
1. **Open the Custom Widget or Action**
20+
Navigate to your custom widget or action in FlutterFlow.
21+
22+
2. **Add the Dependency**
23+
In the **Dependencies** tab, add the required package name and version.
24+
25+
3. **Refresh the Dependencies**
26+
Click the **Refresh** icon to update the packages in your `pubspec.yaml` file.
27+
28+
4. **Import the Package**
29+
Use an import statement in your Dart code, such as:
30+
```dart
31+
import 'package:your_package/your_package.dart';
32+
```
33+
34+
![](../assets/20250430121235199536.png)
35+
36+
:::note
37+
- Dependencies added this way are scoped to the custom code where they are declared.
38+
- You can repeat these steps for each custom widget or action requiring additional packages.
39+
:::
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
keywords: ['permissions', 'upload', 'view']
3+
slug: enable-image-upload-in-webview-on-device
4+
title: Enable Image Upload in WebView on Real Devices
5+
---
6+
7+
# Enable Image Upload in WebView on Real Devices
8+
9+
Image uploads may work in Run/Test mode but fail on real devices due to missing runtime permissions related to accessing the photo library.
10+
11+
## Problem
12+
13+
In web preview mode, permissions are managed by the browser, and image upload typically works without issues. However, on physical devices, accessing the photo library requires explicit runtime permissions.
14+
15+
If the image upload is implemented inside a WebView, FlutterFlow does not automatically detect it and therefore does not request the necessary permissions.
16+
17+
## Solution
18+
19+
To allow image uploads from a WebView on a physical device, follow these steps:
20+
21+
1. **Enable the Required Permission**
22+
Navigate to **Settings → Permissions** in your FlutterFlow project and enable the **Photo Library** permission.
23+
24+
![](../assets/20250430121337121891.png)
25+
26+
2. **Request Permission at Runtime**
27+
Before initiating the upload action inside the WebView, use the **Get Permission** action to explicitly request access to the photo library.
28+
29+
![](../assets/20250430121337385659.png)
30+
31+
3. **Reinstall the App**
32+
After adding the permission:
33+
- Uninstall the app from the device.
34+
- Clear the app cache.
35+
- Reinstall the app to ensure the permission prompt appears.
36+
37+
## Notes
38+
39+
:::warning
40+
If the permission dialog does not appear on first launch, the app will not have access to the photo library, and uploads inside the WebView will fail.
41+
:::
42+
43+
Once permissions are correctly granted, image uploads inside the WebView will function as expected on physical devices.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
keywords: ['email', 'address', 'alert']
3+
author: Unknown
4+
created_at: '1650489334'
5+
slug: /create-an-alert-if-a-user-s-email-address-or-password-is-invalid
6+
title: Create an alert if a user's email address or password is invalid
7+
updated_at: '1721942919'
8+
url: https://intercom.help/flutterflow/en/articles/6156971-create-an-alert-if-a-user-s-email-address-or-password-is-invalid
9+
---
10+
11+
# Create an Alert if a User's Email Address or Password is Invalid
12+
13+
FlutterFlow automatically displays authentication error messages using a **SnackBar** widget. This means you **do not need to manually create alert dialogs** for common login issues such as an incorrect email or password.
14+
15+
The error messages are shown automatically when a login attempt fails, providing a seamless experience for both the developer and end user.
16+
17+
![Error Snackbar Demo](../assets/20250430121519975010.gif)
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
keywords: ['content', 'upload', 'photo']
3+
author: Unknown
4+
created_at: '1657225806'
5+
slug: /can-t-upload-photo-to-content-manager
6+
title: Can't upload photo to Content Manager
7+
updated_at: '1659057829'
8+
url: https://intercom.help/flutterflow/en/articles/6369337-can-t-upload-photo-to-content-manager
9+
---
10+
11+
# Can't Upload Photo to Content Manager
12+
13+
By default, FlutterFlow's CMS does not support image uploads due to restrictive Firebase Storage rules. To enable photo uploads, you need to update your Firestore Security Rules.
14+
15+
---
16+
17+
## Steps to Enable Photo Uploads
18+
19+
### 1. Open Firebase Console
20+
21+
In your FlutterFlow project, go to:
22+
23+
**Settings & Integrations → Firebase → Open Firebase Console**
24+
25+
![Open Firebase Console](../assets/20250430121356207178.png)
26+
27+
---
28+
29+
### 2. Navigate to Storage Rules
30+
31+
In the Firebase Console, click:
32+
33+
**Storage → Rules**
34+
35+
![Storage Rules](../assets/20250430121356535681.png)
36+
37+
---
38+
39+
### 3. Update and Publish New Rules
40+
41+
Replace the existing rules with the following code:
42+
43+
```js
44+
rules_version = '2';
45+
service firebase.storage {
46+
match /b/{bucket}/o {
47+
match /{allPaths=**} {
48+
allow read, write: if request.auth != null;
49+
}
50+
}
51+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
title: Access Page Links After Activating Dynamic Links
3+
slug: /access-page-link-after-activating-dynamic-link
4+
keywords: ['access', 'dynamic', 'activating']
5+
---
6+
7+
# Access Page Links After Activating Dynamic Links
8+
9+
Once you've enabled **Deep Linking & Routing** in FlutterFlow, you can also activate **Firebase Dynamic Links**.
10+
11+
> Want to know more about Firebase Dynamic Links?
12+
> Refer to the Firebase documentation for setup and integration details.
13+
14+
![Dynamic Links Enabled](../assets/20250430121453205914.png)
15+
16+
When you activate dynamic links, you gain access to **page-specific links**. This allows you to share or route users to exact screens within your app.
17+
18+
---
19+
20+
## Important Note
21+
22+
If you enable dynamic links, you must use `"https"` for the URL scheme.
23+
24+
---
25+
26+
## How to Set Up Dynamic Links in FlutterFlow
27+
28+
To share or use the current page URL, follow these steps:
29+
30+
1. **Add an Action**: Use the `Generate Current Page Link` action to create a dynamic link for the active screen.
31+
32+
2. **Access the Page URL**: Once generated, the page URL becomes accessible through the **Widget State → Current Page Link**.
33+
34+
3. **Use It in Another Action**: For example, on your **Share** button, add:
35+
- A `Generate Current Page Link` action first
36+
- Then a `Share` action using `Current Page Link` as the source
37+
38+
---
39+
40+
![Share Button Example](../assets/20250430121453493755.png)
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
keywords: ['list', 'missing', 'state']
3+
slug: /missing-data-types-in-app-state-variable-list
4+
title: Missing Data Types in App State Variable List
5+
---
6+
7+
# Missing Data Types in App State Variable List
8+
9+
When creating an app state variable in FlutterFlow, you should normally see a list of available data types. However, in some cases—especially in **older projects**—these options may not appear.
10+
11+
---
12+
13+
## Why This Happens
14+
15+
This issue is often caused by **Deep Linking not being enabled** in the project settings. Without Deep Linking, the data types list may fail to load in the App State configuration.
16+
17+
---
18+
19+
## How to Fix It
20+
21+
Follow these steps to enable Deep Linking:
22+
23+
1. Open your project in **FlutterFlow**
24+
2. Go to **Project Settings**
25+
3. Scroll to the **App Details** section
26+
4. Open **Deep Linking & Route**
27+
5. **Turn on the Deep Linking** option
28+
29+
---
30+
31+
![Enable Deep Linking](../assets/20250430121217509964.png)
32+
33+
Once Deep Linking is enabled, you should be able to see the full list of data types when creating or editing App State variables.
34+
35+
---
36+
37+
## Conclusion
38+
39+
This quick fix resolves a frustrating bug and can save you significant time during development. If enabling Deep Linking doesn't resolve the issue, please contact [FlutterFlow Support](mailto:[email protected]) for further assistance.
40+
41+
> ✅ Pro Tip: This issue most often affects **legacy or older projects**. For all new projects, Deep Linking is typically enabled by default.
42+
43+
Stay patient, keep building, and happy coding!
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
keywords: ['build', 'first']
3+
slug: build-your-first-app
4+
title: Build Your First App
5+
---
6+
7+
# Build Your First App
8+
9+
Welcome to FlutterFlow — we're glad you're here!
10+
In this tutorial, you'll build a simple app in **less than 10 minutes**.
11+
12+
---
13+
14+
## 1. Create a New Project
15+
16+
- Select **Create New**.
17+
18+
![](../assets/20250430121504394651.png)
19+
20+
- A popup will appear.
21+
Enter a name for your project (e.g., `MyFirstProject`), then select **Create New** under **Blank App**.
22+
23+
![](../assets/20250430121504664904.png)
24+
25+
---
26+
27+
## 2. Change the Page Title
28+
29+
- Click where it says **Page Title**.
30+
- In the **Properties Panel** on the right, change the text to **Home**.
31+
32+
![](../assets/20250430121505082721.png)
33+
34+
---
35+
36+
## 3. Style the Container
37+
38+
- Drag a **Container** widget onto your app canvas.
39+
40+
![](../assets/20250430121505335691.gif)
41+
42+
- In the **Padding & Alignment** section of the right panel:
43+
- Click the lock icon.
44+
- Enter `16` in the **L** field (this applies 16px padding on all sides).
45+
46+
- In the **Container Properties** section:
47+
- Set the width to **** (original is 100).
48+
- Click the **Fill Color** square.
49+
- From the color selector popup, choose **Secondary BG** and click **Use Color**.
50+
51+
- Under **Border Radius**:
52+
- Click the lock icon.
53+
- Enter `8` for the **TL** value.
54+
55+
---
56+
57+
## 4. Add Content to the Container
58+
59+
- Drag a **Column** inside your container.
60+
- In the **Padding & Alignment** section, unlock and enter `12`.
61+
- Drag a **Row** inside the column.
62+
- Then, drag a **Text** widget inside the row.
63+
64+
- In the **Properties Panel**:
65+
- Change the text to **Active Projects**.
66+
- Scroll to the **Text Properties** section.
67+
- Under **Theme Text Style**, select **Body Text 2**.
68+
69+
![](../assets/20250430121505662806.gif)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
keywords: ['onboarding']
3+
slug: onboarding
4+
title: Onboarding
5+
---
6+
7+
# Onboarding
8+
9+
To manage user onboarding effectively, combine **Local State**, **Persisted Value**, and **On PageLoad** actions.
10+
11+
## Strategy
12+
13+
Use conditional logic to verify whether the user has completed onboarding before allowing access to key parts of your app.
14+
15+
## Implementation Steps
16+
17+
1. **Track Onboarding Completion**
18+
- Create a **Local State** or **Persisted Value** (e.g., `hasCompletedOnboarding`) to record the user's onboarding status.
19+
20+
2. **Check Status on Page Load**
21+
- Use an **On Page Load** action to check if the value indicates the user has completed onboarding.
22+
- If not, navigate the user to the onboarding screen.
23+
24+
3. **Enforce Onboarding Before Critical Actions**
25+
- Before allowing actions like checkout, data submission, or profile updates:
26+
- Check the onboarding completion value.
27+
- If onboarding is incomplete, redirect the user accordingly.
28+
29+
## Why It Matters
30+
31+
This approach ensures users:
32+
- Do not skip essential setup steps.
33+
- Receive proper guidance through the app's initial flow.
34+
- Avoid errors or confusion during key interactions.
35+
36+
> ✅ Use **Persisted Values** if onboarding should persist across app sessions. Use **Local State** if the status should reset after each session.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
keywords: ['could', 'embed', 'iframes']
3+
author: Unknown
4+
created_at: '1677842812'
5+
slug: /could-we-embed-a-flutterflow-web-app-into-iframes
6+
title: Could we embed a FlutterFlow web app into iFrames?
7+
updated_at: '1678244479'
8+
url: None
9+
---
10+
11+
# Could We Embed a FlutterFlow Web App Into iFrames?
12+
13+
FlutterFlow web applications may not load correctly within **iframes** due to their reliance on **local storage**. However, it is possible to embed these apps within iframes by **enabling third-party cookies** from the subdomain where your FlutterFlow app is hosted.
14+
15+
![Iframe Behavior](../assets/20250430121251224097.png)
16+
17+
> ⚠️ **Important Notes:**
18+
>
19+
> - While enabling third-party cookies may allow the application to load inside an iframe, **some features may not function as expected**.
20+
> - Many modern browsers and reputable websites intentionally **block iframe embedding** for security reasons.
21+
22+
## Recommendation
23+
24+
If you decide to use this method, **test your embedded application thoroughly** to ensure that all necessary features work correctly.
25+

0 commit comments

Comments
 (0)