You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/troubleshooting/authentication/code_403_the_caller_does_not_have_permission_status_permission_denied.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,16 +17,16 @@ You may encounter this error due to one or more of the following reasons:
17
17
-**API not enabled** in the Google Cloud project
18
18
19
19
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.
30
30
31
31
:::tip[Always Use Least Privilege Principle]
32
32
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.
Copy file name to clipboardExpand all lines: docs/troubleshooting/authentication/custom_authentication_in_flutterFlow.md
+12-16Lines changed: 12 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,17 +16,17 @@ Here's an example:
16
16
17
17

18
18
19
-
**Checklist for Troubleshooting**
19
+
## Checklist for Troubleshooting
20
20
21
-
1.**Verify Server and API Endpoints**
21
+
### 1. Verify Server and API Endpoints
22
22
- 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).
23
23
- Double-check the API endpoint configurations in FlutterFlow to match your server's requirements.
24
24
25
-
2.**FlutterFlow Configuration**
25
+
### 2. FlutterFlow Configuration
26
26
- Make sure custom authentication is enabled in the project settings.
27
27
- Verify that the entry point and logged-in pages are set correctly.
28
28
29
-
3.**UI Configuration**
29
+
### 3. UI Configuration
30
30
- To facilitate the authentication flow, ensure your app has at least three pages:
31
31
32
32
**Login**
@@ -35,33 +35,29 @@ Here's an example:
35
35
36
36
**Home Page** (i.e. the landing page when a user successfully authenticates)
37
37
38
-
4.**API Integration and Authentication Flow**
38
+
### 4. API Integration and Authentication Flow
39
39
- Test API calls from FlutterFlow to your server and ensure responses are received as expected.
40
40
- 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.
41
41
42
-
5.**Handling Tokens and User Data**
42
+
### 5. Handling Tokens and User Data
43
43
- 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.
44
44
45
45

46
46
47
-
6.**Navigation**
47
+
### 6. Navigation
48
48
- If automatic navigation after login or sign-up is not working, you can disable it.
49
49
- Then, opt for manual navigation to ensure users are directed to the correct page after authentication.
50
50
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.
52
53
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.
54
55
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.
Copy file name to clipboardExpand all lines: docs/troubleshooting/authentication/delete_user_action_is_not_working_properly.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,12 @@ Keep in mind that if the same user uses the same signup method to log in again,
22
22
:::
23
23
24
24
25
-
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
+

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.
Copy file name to clipboardExpand all lines: docs/troubleshooting/authentication/google_sign_in_troubleshooting.md
+32-27Lines changed: 32 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,63 +5,68 @@ title: Google Sign-In Troubleshooting
5
5
---
6
6
# Google Sign-In Troubleshooting
7
7
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:
9
9
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:
11
11
12
-
Deploy the application to Google Play Store by using the CodeMagic Integration in FlutterFlow.
13
-

12
+
- Deploy your app to the Google Play Store using the CodeMagic integration in FlutterFlow.
14
13
15
-
After this step, head over to the **Google Play Console**. Here open the app from the **All apps** list.
16
-

14
+

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.
17
17
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
+

19
19

20
20
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
+
22
23

23
24
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.
25
26
26
27

27
28
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
+
29
31

30
32
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
-

33
+
- To update your configuration, open your app in **FlutterFlow**, go to **Settings → Firebase**, and click **Regenerate Config Files**, then click **Generate Files**.
33
34
34
-
Here, Click on the **Regenerate Config Files** button and then Click on **Generate Files.**
35
+

35
36

36
37
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.
38
39
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
40
43
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.
42
45
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:
44
47
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.
46
49
47
50

48
51
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
+
50
54

51
55
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
-

56
+
- In **FlutterFlow**, open your app and go to **Settings → Firebase**, then click **Regenerate Config Files** and **Generate Files**.
54
57
55
-
Here, Click on the **Regenerate Config Files** button and then Click on **Generate Files**
58
+

56
59

57
-
58
60
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).*
60
64
61
-
*You can also refer to the **Google Play Services** documentation for more information.*
65
+
---
62
66
63
67
:::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.
65
69
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
title: How to Retrieve the Authenticated Type from Firebase Auth
5
5
---
6
-
# Retrieve the authenticated type from Firebase auth in Flutterflow
6
+
# Retrieve the authenticated type from Firebase auth
7
7
8
8
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.
- 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.
31
31
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.
33
33
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`.
35
35
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.
37
37
38
38
`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.
39
39
@@ -42,13 +42,14 @@ In each iteration, we assign the `providerId` to our `signInMethod` string. The
42
42
After the loop is done, the function returns `signInMethod` string which indicates the sign-in method the user used.
43
43
44
44
The function `getUserSignInMethod()` returns a String value which corresponds to the providerId of the user's sign-in method.
45
+
45
46
Here are examples of how the return value might look:
46
47
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'`**
48
49
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'`**
50
51
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'`**
52
53
53
54
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.
title: SafetyNet phone sign-in issue on android devices
5
5
---
6
+
6
7
# SafetyNet phone sign-in issue on android devices
7
8
8
9
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
17
18
18
19
- 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.
19
20
20
-
Solution: Read more information here
21
+
**Solution**: Read more information [here](https://firebase.flutter.dev/docs/auth/phone/)
22
+
23
+
21
24

25
+
22
26
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:
23
27
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.
25
30
26
31
To enable SafetyNet for use with Firebase Authentication:
27
32
@@ -31,14 +36,16 @@ To enable SafetyNet for use with Firebase Authentication:
31
36
32
37
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.
33
38
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.
35
41
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".
37
44
38
45
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.
39
46
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.
0 commit comments