Skip to content

Commit 88fa1a6

Browse files
committed
improved formating
1 parent db8f2fa commit 88fa1a6

10 files changed

+196
-209
lines changed

docs/troubleshooting/authentication/app_starts_from_homepage_in_run_mode.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ If your app always redirects to the **HomePage** in **Run Mode**, even after a p
1111

1212
- Clear your browser cache and history.
1313

14-
![How to clear browser cache](../assets/20250430121300291232.png)
14+
![How to clear browser cache](../assets/20250430121300291232.png)
1515

1616
- Try a different browser or use incognito/private browsing mode to see if the issue persists.
1717

docs/troubleshooting/authentication/check_firebase_login_method.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Understanding which authentication method a user has used can be useful for seve
1010
In our Flutter app, we can find out which method a user used to authenticate by leveraging Firebase's `User.providerData` property. Let's take a closer look at how this works in the code:
1111

1212

13-
```
13+
```js
1414
import 'package:firebase_auth/firebase_auth.dart';
1515

1616
String getUserSignInMethod() {
@@ -35,25 +35,24 @@ Here's a breakdown of the code:
3535
- Inside the function, we obtain the current user from FirebaseAuth using `FirebaseAuth.instance.currentUser`.
3636

3737
- We then declare a string `signInMethod` that will store the name of the provider used for sign-in.
38+
39+
- `user.providerData` is an iterable that provides UserInfo for each sign-in method used by the user. We loop over this iterable using a `for` loop.
40+
41+
- In each iteration, we assign the `providerId` to our `signInMethod` string. The `providerId` can be 'google.com' for Google, 'facebook.com' for Facebook, and 'password' for email and password.
42+
43+
- After the loop is done, the function returns `signInMethod` string which indicates the sign-in method the user used.
44+
45+
- The function `getUserSignInMethod()` returns a String value which corresponds to the providerId of the user's sign-in method.
3846

39-
`user.providerData` is an iterable that provides UserInfo for each sign-in method used by the user. We loop over this iterable using a `for` loop.
40-
41-
In each iteration, we assign the `providerId` to our `signInMethod` string. The `providerId` can be 'google.com' for Google, 'facebook.com' for Facebook, and 'password' for email and password.
42-
43-
After the loop is done, the function returns `signInMethod` string which indicates the sign-in method the user used.
44-
45-
The function `getUserSignInMethod()` returns a String value which corresponds to the providerId of the user's sign-in method.
46-
47-
Here are examples of how the return value might look:
47+
Here are examples of how the return value might look like:
4848

4949
- If the user has signed in using Google, the function will return: **`'google.com'`**
5050

5151
- If the user has signed in using Facebook, the function will return: **`'facebook.com'`**
5252

5353
- If the user has signed in using Email and Password, the function will return: **`'password'`**
5454

55-
These are the identifiers used by Firebase to represent different sign-in methods.
56-
Please thoroughly test this function to ensure it fits your specific requirements
55+
These are the identifiers used by Firebase to represent different sign-in methods. Please thoroughly test this function to ensure it fits your specific requirements
5756

5857
:::tip[Use Sign-In Method to Drive Dynamic UI in FlutterFlow]
5958
In FlutterFlow, if you want to display or use the user's sign-in method in your UI logic (example, showing different UIs for Google vs. email login), you can create a custom function using the `providerId` approach shown in the article and **connect it to a custom action**. This allows you to make dynamic decisions inside your app based on how the user authenticated.

docs/troubleshooting/authentication/custom_authentication_in_flutterFlow.md

Lines changed: 0 additions & 60 deletions
This file was deleted.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
---
22
keywords: ['firebase-auth', 'delete-user', 'firestore-cleanup']
3-
slug: /deleting-firebase-users-and-related-data-in-flutterflow
4-
title: Deleting Firebase Users and Related Data in FlutterFlow
3+
slug: /deleting-firebase-users-and-related-data
4+
title: Deleting Firebase Users and Related Data
55
---
6-
# Deleting Firebase Users and Related Data in FlutterFlow
6+
# Deleting Firebase Users and Related Data
77

88
![](../assets/20250430121300815719.png "Screenshot showing the delete user action")
99

1010
## Understanding the Delete Action
1111

1212
The delete action in Firebase is designed to remove the user from the authentication table only. This means the user's document in the database will not be affected. If you want to delete the user's document from the database as well, you'll need to create a custom action with some custom code.
1313

14-
## Logging Out After Deletion
14+
### Logging Out After Deletion
1515

1616
After completing the delete action, it is important to log out the user. Since the user no longer exists in the authentication system, logging out ensures the app routes the user back to the login page, which is typically the initial page of your project.
1717

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
keywords: ['firebase', 'deployment', 'android', 'google-sign-in']
3+
slug: /fix-google-sign-in-issues
4+
title: Fix Google Sign-In Issues
5+
---
6+
# Fix Google Sign-In Issues
7+
8+
If Google Sign-In isn’t working after exporting your FlutterFlow app, follow these steps based on how you’re deploying your app.
9+
10+
1. **If Deployed to the Play Store via CodeMagic**
11+
12+
If you published your app to the Play Store using FlutterFlow's CodeMagic integration:
13+
14+
- In the **Google Play Console**, open your app from the **All apps** list.
15+
- Go to **Setup → App Integrity**.
16+
- Under the **App Signing** tab, copy the **SHA-1 certificate fingerprint**.
17+
18+
![](../assets/20250430121440426479.png)
19+
20+
- In the **Firebase console**, open the same project, scroll to **Your Apps**, and select your Android app.
21+
- Click **Add fingerprint**, paste the SHA-1, then click **Save**.
22+
23+
![](../assets/20250430121441325585.png)
24+
25+
- In FlutterFlow, go to **Settings → Firebase** and click:
26+
- **Regenerate Config Files**
27+
- **Generate Files**
28+
29+
![](../assets/20250430121442125737.png)
30+
31+
Re-test your app. Google Sign-In should now work correctly.
32+
33+
34+
2. **If Not Yet Published or Using Manual Signing**
35+
36+
If you’re not using Play Store App Signing:
37+
38+
- Use **Keytool** or **Gradle's Signing Report** to generate your SHA-1.
39+
- In **Firebase**, open your project settings.
40+
- Under **Your Apps**, select the Android app and add the SHA-1 fingerprint.
41+
42+
![](../assets/20250430121442863891.png)
43+
44+
- In FlutterFlow, go to **Settings → Firebase**, then:
45+
- **Regenerate Config Files**
46+
- **Generate Files**
47+
48+
![](../assets/20250430121443525154.png)
49+
50+
Test the app again to confirm Google Sign-In works.
51+
52+
53+
*Refer to the [Google Play Services documentation](https://developers.google.com/android/guides/overview) for more information.*
54+
55+
56+
:::tip[Add Debug SHA-1 for Local Testing]
57+
- When testing Google Sign-In in FlutterFlow before publishing, add your **debug SHA-1** in Firebase.
58+
- Then go to `Settings → Firebase` in FlutterFlow and regenerate your config files.
59+
:::

docs/troubleshooting/authentication/fix_google_sign-in_issues_in_flutterflow.md

Lines changed: 0 additions & 61 deletions
This file was deleted.

docs/troubleshooting/authentication/permission_denied_code_403.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,27 @@ You may encounter this error due to one or more of the following reasons:
1717
- **Missing or incorrect IAM roles** for the service account
1818
- **API not enabled** in the Google Cloud project
1919

20+
2021
Do the following to fix this error:
2122

22-
## Check Your Service Account JSON File
23+
- **Check Your Service Account JSON File**
2324

24-
Ensure you are using the correct `service-account.json` file and that it is not corrupted or expired.
25+
Ensure you are using the correct `service-account.json` file and that it is not corrupted or expired.
2526

26-
## Verify IAM Roles and Permissions
27+
- **Verify IAM Roles and Permissions**
2728

28-
Make sure the service account has the necessary roles like `Editor`, `Owner`, or other specific roles required for your use case.
29+
Make sure the service account has the necessary roles like `Editor`, `Owner`, or other specific roles required for your use case.
2930

30-
## Enable Required APIs
31+
- **Enable Required APIs**
3132

32-
Go to the [Google Cloud Console](https://console.cloud.google.com/apis/library) and ensure all necessary APIs are enabled for your project.
33+
Go to the [Google Cloud Console](https://console.cloud.google.com/apis/library) and ensure all necessary APIs are enabled for your project.
3334

34-
## Regenerate the Service Account Key if Needed
35-
If you suspect the key is invalid, generate a new one and update your application configuration accordingly.
35+
- **Regenerate the Service Account Key if Needed**
36+
37+
If you suspect the key is invalid, generate a new one and update your application configuration accordingly.
3638

3739
:::tip[Always Use Least Privilege Principle]
3840
When assigning IAM roles to your service account, follow the **principle of least privilege**—only grant the minimum permissions necessary for the task. This not only reduces the risk of misconfiguration but also enhances the overall security posture of your app.
3941
:::
4042

41-
If you continue to experience issues, consult the [Google Cloud IAM documentation](https://cloud.google.com/iam/docs/troubleshooting-access) or contact support for further assistance.
43+
If you continue to experience issues, consult the [Google Cloud IAM documentation](https://cloud.google.com/iam/docs/troubleshooting-access) or contact [FlutterFlow Support](mailto:support@flutterflow.io) for further assistance.

docs/troubleshooting/authentication/safetynet_phone_sign-in_issue_on_android_devices.md

Lines changed: 25 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -38,54 +38,45 @@ Ensure the following configurations are in place:
3838

3939
Firebase uses one of the following methods to confirm the authenticity of phone sign-in requests:
4040

41-
### 1. SafetyNet (Deprecated)
41+
1. **SafetyNet (Deprecated)**
4242

43-
If the device supports Google Play Services, Firebase uses **SafetyNet Attestation** to confirm the device’s legitimacy.
43+
If the device supports Google Play Services, Firebase uses **SafetyNet Attestation** to confirm the device’s legitimacy.
4444

45-
> :::warning[Deprecated API]
46-
> The SafetyNet Attestation API is deprecated and has been replaced by the [Play Integrity API](https://developer.android.com/google/play/integrity).
47-
> After **January 31, 2023**, you can no longer enable the SafetyNet API for new projects in the Google Cloud Console.
48-
> :::
45+
:::warning[Deprecated API]
46+
The SafetyNet Attestation API is deprecated and has been replaced by the [Play Integrity API](https://developer.android.com/google/play/integrity). After **January 31, 2023**, you can no longer enable the SafetyNet API for new projects in the Google Cloud Console.
47+
:::
4948

50-
#### To use SafetyNet (if still active for your project):
51-
- Enable **Android Device Verification (Deprecated)** in the [Google Cloud Console](https://console.cloud.google.com/).
52-
- Ensure your app's **SHA-256** is added in the Firebase Console under **Project Settings > General > Your Apps**.
53-
- Use the default Firebase API key or request onboarding for SafetyNet if needed.
54-
- Monitor your quota [here](https://developer.android.com/google/play/safetynet/quotas).
49+
To use SafetyNet (if still active for your project):
50+
- Enable **Android Device Verification (Deprecated)** in the [Google Cloud Console](https://console.cloud.google.com/).
51+
- Ensure your app's **SHA-256** is added in the Firebase Console under **Project Settings > General > Your Apps**.
52+
- Use the default Firebase API key or request onboarding for SafetyNet if needed.
53+
- Monitor your quota [here](https://developer.android.com/google/play/safetynet/quotas).
5554

56-
![](../assets/20250430121259958091.png)
55+
![](../assets/20250430121259958091.png)
5756

57+
2. **reCAPTCHA Verification**
58+
59+
If SafetyNet is unavailable (e.g. device without Google Play Services or running on an emulator), Firebase falls back to **reCAPTCHA verification**.The reCAPTCHA challenge usually completes without user interaction. This flow requires:
5860

59-
### 2. reCAPTCHA Verification
61+
- A valid **SHA-1** fingerprint added to your Firebase project.
62+
- An **unrestricted** or **domain-allowlisted** API key (e.g. `your-project-name.firebaseapp.com`).
63+
- Ensure both SafetyNet and reCAPTCHA flows are working to support a wider range of Android devices.
6064

61-
If SafetyNet is unavailable (e.g. device without Google Play Services or running on an emulator), Firebase falls back to **reCAPTCHA verification**.
6265

63-
- The reCAPTCHA challenge usually completes without user interaction.
64-
- This flow requires:
65-
- A valid **SHA-1** fingerprint added to your Firebase project.
66-
- An **unrestricted** or **domain-allowlisted** API key (e.g. `your-project-name.firebaseapp.com`).
66+
:::info[Release Mode Configuration]
67+
When releasing your app to the Google Play Store, ensure you include the **SHA-1** and **SHA-256** keys from your **Play Console**. Here is how to do that:
6768

68-
> Ensure both SafetyNet and reCAPTCHA flows are working to support a wider range of Android devices.
69+
- Navigate to **Play Console → Your App → Release → Setup → App Signing**
70+
- Then copy both **SHA-1** and **SHA-256** fingerprints and add them to Firebase Console under **Project Settings > General > Your Apps**.
71+
:::
6972

73+
![](../assets/20250430121300291238.png)
7074

71-
## Important for Release Builds
72-
73-
> :::info[Release Mode Configuration]
74-
> When releasing your app to the Google Play Store, ensure you include the **SHA-1** and **SHA-256** keys from your **Play Console**:
75-
>
76-
> Navigate to:
77-
> **Play Console → Your App → Release → Setup → App Signing**
78-
> Then copy both **SHA-1** and **SHA-256** fingerprints and add them to Firebase Console under **Project Settings > General > Your Apps**.
79-
> :::
80-
81-
![](../assets/20250430121300291238.png)
82-
83-
84-
## Learn More
8575

76+
:::info[Learn more]
8677
- [Firebase Phone Authentication (FlutterFire)](https://firebase.flutter.dev/docs/auth/phone/)
8778
- [Using Firebase Auth in FlutterFlow](https://docs.flutterflow.io/authentication)
8879
- [Play Integrity API Migration](https://developer.android.com/google/play/integrity)
89-
80+
:::
9081

9182
Still stuck? Check Firebase logs, test on a physical device, and ensure your API keys and fingerprints are correctly added. Proper configuration of SafetyNet or reCAPTCHA is critical to ensuring phone number sign-in works reliably across devices.

0 commit comments

Comments
 (0)