Skip to content

Commit bc7144b

Browse files
committed
improved formating, all feedbacks implemented
1 parent 3b39ab8 commit bc7144b

7 files changed

+97
-83
lines changed

docs/troubleshooting/authentication/code_403_the_caller_does_not_have_permission_status_permission_denied.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ You may encounter this error due to one or more of the following reasons:
1717
- **API not enabled** in the Google Cloud project
1818

1919

20-
## How to Fix
21-
22-
1. **Check your service account JSON file**
23-
- Ensure you are using the correct file and it is not corrupted.
24-
2. **Verify IAM roles and permissions**
25-
- Make sure the service account has the necessary roles (e.g., Editor, Owner, or specific roles required for your use case).
26-
3. **Enable required APIs**
27-
- Go to the [Google Cloud Console](https://console.cloud.google.com/apis/library) and ensure all necessary APIs are enabled for your project.
28-
4. **Regenerate service account keys if needed**
29-
- If you suspect the key is invalid, generate a new one and update your application configuration.
20+
## How to Fix:
21+
22+
### 1. Check your service account JSON file
23+
Ensure you are using the correct file and it is not corrupted.
24+
### 2. Verify IAM roles and permissions
25+
Make sure the service account has the necessary roles (e.g., Editor, Owner, or specific roles required for your use case).
26+
### 3. Enable required APIs
27+
Go to the [Google Cloud Console](https://console.cloud.google.com/apis/library) and ensure all necessary APIs are enabled for your project.
28+
### 4. Regenerate service account keys if needed
29+
If you suspect the key is invalid, generate a new one and update your application configuration.
3030

3131
:::tip[Always Use Least Privilege Principle]
3232
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.

docs/troubleshooting/authentication/custom_authentication_in_flutterFlow.md

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@ Here's an example:
1616

1717
![](../assets/20250430121149388590.png)
1818

19-
**Checklist for Troubleshooting**
19+
## Checklist for Troubleshooting
2020

21-
1. **Verify Server and API Endpoints**
21+
### 1. Verify Server and API Endpoints
2222
- Confirm that your server is correctly returning JWT tokens for login and sign-up requests. The server's response should include the authentication token, refresh token, expiration time, and user ID (UID).
2323
- Double-check the API endpoint configurations in FlutterFlow to match your server's requirements.
2424

25-
2. **FlutterFlow Configuration**
25+
### 2. FlutterFlow Configuration
2626
- Make sure custom authentication is enabled in the project settings.
2727
- Verify that the entry point and logged-in pages are set correctly.
2828

29-
3. **UI Configuration**
29+
### 3. UI Configuration
3030
- To facilitate the authentication flow, ensure your app has at least three pages:
3131

3232
**Login**
@@ -35,33 +35,29 @@ Here's an example:
3535

3636
**Home Page** (i.e. the landing page when a user successfully authenticates)
3737

38-
4. **API Integration and Authentication Flow**
38+
### 4. API Integration and Authentication Flow
3939
- Test API calls from FlutterFlow to your server and ensure responses are received as expected.
4040
- Upon successful authentication, use the backend FlutterFlow action to call the API. Then, utilize the response data to perform a "custom login" action within FlutterFlow.
4141

42-
5. **Handling Tokens and User Data**
42+
### 5. Handling Tokens and User Data
4343
- Set up your FlutterFlow actions to correctly parse the API response, capturing the auth token, refresh token, expiration time, and user ID (UID). This data is crucial for managing user sessions.
4444

4545
![](../assets/20250430121149749937.png)
4646

47-
6. **Navigation**
47+
### 6. Navigation
4848
- If automatic navigation after login or sign-up is not working, you can disable it.
4949
- Then, opt for manual navigation to ensure users are directed to the correct page after authentication.
5050

51-
**General Tips**
51+
:::tip[General Tips]
52+
- Before integrating real user data, test your custom authentication flow using **dummy credentials** on your server. This allows you to debug token handling, API responses, and navigation logic safely—without risking user experience or exposing sensitive data.
5253

53-
Utilize logging both on your server and within FlutterFlow (snack bars, alerts) actions to track the authentication flow and identify any points of failure.
54+
- Utilize logging both on your server and within FlutterFlow (snack bars, alerts) actions to track the authentication flow and identify any points of failure.
5455

55-
Test the entire authentication flow, from entering credentials to accessing protected pages after login, to ensure there are no breaks in the process.
56-
57-
By carefully following this guide, you should be able to troubleshoot and resolve common issues encountered when setting up custom authentication in FlutterFlow.
58-
59-
:::tip[Use Test Credentials First]
60-
Before integrating real user data, test your custom authentication flow using **dummy credentials** on your server. This allows you to debug token handling, API responses, and navigation logic safely—without risking user experience or exposing sensitive data.
56+
- Test the entire authentication flow, from entering credentials to accessing protected pages after login, to ensure there are no breaks in the process.
6157
:::
6258

6359

64-
**More resources:**
60+
## More resources:
6561

6662
https://www.youtube.com/watch?v=hnX3CvBtGvI
6763

docs/troubleshooting/authentication/delete_user_action_is_not_working_properly.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ Keep in mind that if the same user uses the same signup method to log in again,
2222
:::
2323

2424

25-
![](../assets/20250430121301101693.png)Note: the action we do in Flutterflow is exactly the same action we can do manually to delete a user from the authentication table in Firebase.
25+
![](../assets/20250430121301101693.png)
26+
27+
:::note
28+
29+
The action we do in Flutterflow is exactly the same action we can do manually to delete a user from the authentication table in Firebase.
30+
31+
:::
2632

2733

docs/troubleshooting/authentication/google_sign_in_troubleshooting.md

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,63 +5,68 @@ title: Google Sign-In Troubleshooting
55
---
66
# Google Sign-In Troubleshooting
77

8-
If you face any issue while using the Google Sign-in feature from the exported app, then follow the given instructions to resolve them:
8+
If you face any issues using the Google Sign-In feature from the exported app, follow these instructions to resolve them:
99

10-
1. **If the App is Pushed to Play Store from FlutterFlow by using CodeMagic deployment:**
10+
## 1. If the App is Pushed to the Play Store from FlutterFlow using CodeMagic deployment:
1111

12-
Deploy the application to Google Play Store by using the CodeMagic Integration in FlutterFlow.
13-
![](../assets/20250430121439158816.png)
12+
- Deploy your app to the Google Play Store using the CodeMagic integration in FlutterFlow.
1413

15-
After this step, head over to the **Google Play Console**. Here open the app from the **All apps** list.
16-
![](../assets/20250430121439605476.png)
14+
![](../assets/20250430121439158816.png)
15+
16+
- Go to the **Google Play Console**, open your app from the **All apps** list, and navigate to the **App Integrity** option under the **Setup** menu on the left.
1717

18-
After opening the app dashboard, click on the **App Integrity** option under the **Setup** menu present on the left side of the screen.
18+
![](../assets/20250430121439605476.png)
1919
![](../assets/20250430121440000724.png)
2020

21-
After opening the **App Integrity** section, click on the **App Signing** tab. Here you'll find the **SHA-1 certificate fingerprint** Copy this key by clicking on the **Copy** Icon.
21+
- In the **App Integrity** section, click the **App Signing** tab and copy the **SHA-1 certificate fingerprint** using the **Copy** icon.
22+
2223
![](../assets/20250430121440426479.png)
2324

24-
After completing the above steps, head over to the **Firebase console** and open the project settings of the same project.
25+
- Next, open the **Firebase console** and go to the project settings of the same project.
2526

2627
![](../assets/20250430121440906814.png)
2728

28-
Here, scroll down to the find **Your Apps** section. Select the **Android app** and click on **Add fingerprint** You'll need to paste the copied SHA-1 Fingerprint here and then hit **Save**
29+
Scroll to the **Your Apps** section, select your **Android app**, and click **Add fingerprint**. Paste the SHA-1 fingerprint and click **Save**.
30+
2931
![](../assets/20250430121441325585.png)
3032

31-
After this, you'll need to Regenerate the config files from FlutterFlow. To do this, open your app in **FlutterFlow** and then click on **Settings** **>** **Firebase**.
32-
![](../assets/20250430121441664549.png)
33+
- To update your configuration, open your app in **FlutterFlow**, go to **Settings → Firebase**, and click **Regenerate Config Files**, then click **Generate Files**.
3334

34-
Here, Click on the **Regenerate Config Files** button and then Click on **Generate Files.**
35+
![](../assets/20250430121441664549.png)
3536
![](../assets/20250430121442125737.png)
3637

37-
This issue should now be resolved. You can now re-test to confirm that the issue has been fixed.
38+
This should resolve the issue. Re-test to confirm that Google Sign-In works as expected.
3839

39-
2. **If you have not yet pushed to the play store or are self-signing your app**
40+
---
41+
42+
## 2. If You Have Not Yet Pushed to the Play Store or Are Self-Signing Your App
4043

41-
If you're not using Play Store App Signing or haven't deployed your app yet, follow the instructions in our documentation to use Keytool or Gradle's Signing Report to obtain your SHA-1.
44+
If you're not using Play Store App Signing or haven't deployed yet, follow our documentation to use **Keytool** or **Gradle's Signing Report** to get your SHA-1.
4245

43-
After manually generating the SHA-1 please make sure to update it in Firebase and then regenerate the config files in FlutterFlow using these instructions:
46+
Once you’ve generated the SHA-1:
4447

45-
Head over to the **Firebase console** and open the project settings of your project.
48+
- Go to your **Firebase console** and open your project settings.
4649

4750
![](../assets/20250430121442525774.png)
4851

49-
Here, scroll down to the find **Your Apps** section. Select the **Android app** and click on **Add fingerprint** You'll need to paste the copied SHA-1 Fingerprint here and then hit **Save**
52+
- Scroll to the **Your Apps** section, select your **Android app**, and click **Add fingerprint**. Paste the SHA-1 and click **Save**.
53+
5054
![](../assets/20250430121442863891.png)
5155

52-
After this, you'll need to Regenerate the config files from FlutterFlow. To do this, open your app in **FlutterFlow** and then click on **Settings** **>** **Firebase**.
53-
![](../assets/20250430121443139294.png)
56+
- In **FlutterFlow**, open your app and go to **Settings → Firebase**, then click **Regenerate Config Files** and **Generate Files**.
5457

55-
Here, Click on the **Regenerate Config Files** button and then Click on **Generate Files**
58+
![](../assets/20250430121443139294.png)
5659
![](../assets/20250430121443525154.png)
57-
5860

59-
This issue should now be resolved. You can now re-test to confirm that the issue has been fixed.​
61+
Google Sign-In should now work correctly. Re-test to confirm.
62+
63+
*For more information, refer to the [Google Play Services documentation](https://developers.google.com/android/guides/overview).*
6064

61-
*You can also refer to the **Google Play Services** documentation for more information.*
65+
---
6266

6367
:::tip[Add Your Debug SHA-1 for Local Google Sign-In]
64-
If you're testing Google Sign-In inside FlutterFlow or using the app before deploying to the Play Store, make sure to **add your debug SHA-1 fingerprint** to Firebase. Without this, authentication won't work during development.
68+
If you're testing Google Sign-In inside FlutterFlow or before deploying to the Play Store, be sure to **add your debug SHA-1 fingerprint** in Firebase. Without this, authentication will fail during development.
6569

66-
After adding it, don't forget to **regenerate your Firebase config files in FlutterFlow** under `Settings → Firebase → Regenerate Config Files → Generate Files`.
70+
After adding it, don’t forget to **regenerate your Firebase config files** in FlutterFlow under
71+
`Settings → Firebase → Regenerate Config Files → Generate Files`.
6772
:::
Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
keywords: ['firebase', 'auth', 'authenticated']
3-
slug: /how-to-retrieve-the-authenticated-type-from-firebase-auth-in-flutterflow
4-
title: How to retrieve the authenticated type from Firebase auth in Flutterflow
3+
slug: /how-to-retrieve-the-authenticated-type-from-firebase-auth
4+
title: How to Retrieve the Authenticated Type from Firebase Auth
55
---
6-
# Retrieve the authenticated type from Firebase auth in Flutterflow
6+
# Retrieve the authenticated type from Firebase auth
77

88
Understanding which authentication method a user has used can be useful for several reasons. For example, it can be leveraged for analytics, user support, and to customize the user's experience based on their login method. This method, however, is specific to Firebase Authentication.​
99

@@ -27,13 +27,13 @@ String getUserSignInMethod() {
2727

2828
Here's a breakdown of the code:
2929

30-
- We first import the FirebaseAuth package which gives us access to Firebase's authentication methods.
30+
- We first import the [Firebase Auth](https://pub.dev/packages/firebase_auth) package which gives us access to Firebase's authentication methods.
3131

32-
- Next, we define a function `getUserSignInMethod`. This function will return a string indicating the sign-in method the user used.
32+
- Next, we define a function `getUserSignInMethod`. This function will return a string indicating the sign-in method the user used.
3333

34-
- Inside the function, we obtain the current user from FirebaseAuth using `FirebaseAuth.instance.currentUser`.
34+
- Inside the function, we obtain the current user from FirebaseAuth using `FirebaseAuth.instance.currentUser`.
3535

36-
We then declare a string `signInMethod` that will store the name of the provider used for sign-in.
36+
- We then declare a string `signInMethod` that will store the name of the provider used for sign-in.
3737

3838
`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.
3939

@@ -42,13 +42,14 @@ In each iteration, we assign the `providerId` to our `signInMethod` string. The
4242
After the loop is done, the function returns `signInMethod` string which indicates the sign-in method the user used.
4343

4444
The function `getUserSignInMethod()` returns a String value which corresponds to the providerId of the user's sign-in method.
45+
4546
Here are examples of how the return value might look:
4647

47-
If the user has signed in using Google, the function will return: **`'google.com'`**
48+
- If the user has signed in using Google, the function will return: **`'google.com'`**
4849

49-
If the user has signed in using Facebook, the function will return: **`'facebook.com'`**
50+
- If the user has signed in using Facebook, the function will return: **`'facebook.com'`**
5051

51-
If the user has signed in using Email and Password, the function will return: **`'password'`**
52+
- If the user has signed in using Email and Password, the function will return: **`'password'`**
5253

5354
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.
5455

docs/troubleshooting/authentication/safetynet_phone_sign-in_issue_on_android_devices.md

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ keywords: ['android', 'signing', 'release']
33
slug: /safetynet-phone-sign-in-issue-on-android-devices
44
title: SafetyNet phone sign-in issue on android devices
55
---
6+
67
# SafetyNet phone sign-in issue on android devices
78

89
It looks like you are experiencing an issue with using the Firebase Phone Authentication method. To troubleshoot this issue, there are a few things you can try:
@@ -17,11 +18,15 @@ It looks like you are experiencing an issue with using the Firebase Phone Authen
1718

1819
- If you are still experiencing issues, try reviewing the documentation and tutorials provided by Firebase to ensure that you have correctly implemented the phone authentication flow in your app.
1920

20-
Solution: Read more information here​
21+
**Solution**: Read more information [here](https://firebase.flutter.dev/docs/auth/phone/)
22+
23+
2124
![](../assets/20250430121259958091.png)
25+
2226
To use phone number authentication, Firebase must be able to verify that phone number sign-in requests are coming from your app. There are two ways Firebase Authentication accomplishes this:
2327

24-
**1- SafetyNet**:If a user has a device with Google Play Services installed, and Firebase Authentication can verify the device as legitimate with Android SafetyNet, phone number sign-in can proceed.
28+
## 1- SafetyNet:
29+
If a user has a device with Google Play Services installed, and Firebase Authentication can verify the device as legitimate with Android SafetyNet, phone number sign-in can proceed.
2530

2631
To enable SafetyNet for use with Firebase Authentication:
2732

@@ -31,14 +36,16 @@ To enable SafetyNet for use with Firebase Authentication:
3136

3237
The SafetyNet Attestation API is deprecated and has been replaced by the Play Integrity API. We are working on a migration path to the Play Integrity API, which we expect to make available within the SafetyNet deprecation timeline. After 31 January 2023, you will not be able to enable the Android Device Verification (SafetyNet) API in the Google Cloud Console. To enable the Android Device Verification (SafetyNet) API in a new project after Jan 31, 2023, submit the SafetyNet Attestation API Onboarding form.
3338

34-
SafetyNet has a default quota that is sufficient for most apps. See SafetyNet Quota Monitoring for more information.
39+
SafetyNet has a default quota that is sufficient for most apps. See [SafetyNet Quota Monitoring](https://developer.android.com/google/play/safetynet/quotas)
40+
for more information.
3541

36-
2- **reCAPTCHA verification**:In the event that SafetyNet cannot be used, such as when the user does not have Google Play Services support, or when testing your app on an emulator, Firebase Authentication uses a reCAPTCHA verification to complete the phone sign-in flow. The reCAPTCHA challenge can often be completed without the user having to solve anything. Please note that this flow requires that a SHA-1 is associated with your application. This flow also requires your API Key to be unrestricted or allow listed for "your-project-name.firebaseapp.com".
42+
## 2- reCAPTCHA verification:
43+
In the event that SafetyNet cannot be used, such as when the user does not have Google Play Services support, or when testing your app on an emulator, Firebase Authentication uses a reCAPTCHA verification to complete the phone sign-in flow. The reCAPTCHA challenge can often be completed without the user having to solve anything. Please note that this flow requires that a SHA-1 is associated with your application. This flow also requires your API Key to be unrestricted or allow listed for "your-project-name.firebaseapp.com".
3744

3845
The reCAPTCHA flow will only be triggered when SafetyNet is unavailable or your device does not pass suspicion checks. Nonetheless, you should ensure that both scenarios are working correctly.​
3946

40-
:::info[Next]
41-
**Release mode** If you're releasing your app to the Play Store, you must add the SHA certificate fingerprints from the Play Console To get the keys for the release app, navigate to **Play Store Console > Your project > Release Management –> App Signing** and copy the **SHA-1** and **SHA-256** keys.
47+
:::info[Release mode]
48+
If you're releasing your app to the Play Store, you must add the SHA certificate fingerprints from the Play Console To get the keys for the release app, navigate to **Play Store Console > Your project > Release Management –> App Signing** and copy the **SHA-1** and **SHA-256** keys.
4249
:::
4350

4451

0 commit comments

Comments
 (0)