user_profile_gatekeeper 1.0.0 copy "user_profile_gatekeeper: ^1.0.0" to clipboard
user_profile_gatekeeper: ^1.0.0 copied to clipboard

Ensure that your users have provided necessary profile information before they can access your app.

user_profile_gatekeeper #

Live demo: https://jake-mok-nelson.github.io/user_profile_gatekeeper/

Ensure that your users have provided necessary profile information before they can access your app.

If you require that a user provides a property (e.g. name, email, phone number) as a key part of your apps functionality, you can use this package to ensure that the user has provided that information before they navigate.

When to use this #

  • Ensure user's have completed all required information for your app to function
  • Validate user input before allowing them to navigate to ensure all required data is present
  • Ensure that existing required user properties aren't removed or changed to something that doesn't meet your requirements

When not to use this #

  • If you don't have any required user properties outside of the mandatory ones from most providers (e.g. id, email, password)
  • If you don't need to validate user input before allowing them to navigate
  • If you don't need to ensure that existing required user properties aren't removed or changed
  • As a replacement for a full user profile system (e.g. user settings, user profile, etc.)
  • To store sensitive information (e.g. SSN, credit card information, passwords, etc.

Installation #

dependencies:
  user_profile_gatekeeper: ^1.0.0
copied to clipboard

Usage #

Configure your required user properties using the UserProperty class:

UserProperty(
  label: 'displayName',
  get: () async {
    // Call your APIs here to get the value of a property and see if it's set
    // final user = FirebaseAuth.instance.currentUser;
    // return user?.displayName ?? '';
    return Future.value('John');
  },
  // Validate that the value is not empty and is between 2 and 50 characters
  // Validation occurs on load and when the user tries to save
  validate: (String value) => switch (value) {
    String s when s.isEmpty => false,
    String s when s.length < 2 || s.length > 50 => false,

    // Is AlphaNumeric
    String s when !RegExp(r'^[a-zA-Z0-9 ]+$').hasMatch(s) => false,
    _ => true,
  },
  save: (String value) async {
    // Store the new value in a persistent place to proceed with navigation
    // final user = FirebaseAuth.instance.currentUser;
    // await user?.updateDisplayName(value);
  },
),
copied to clipboard

Wrap your app with UserProfileGatekeeper to ensure necessary profile data is collected:

UserProfileGatekeeper(
  requiredUserProperties: [...],
  child: HomeScreen(),
)
copied to clipboard
3
likes
160
points
37
downloads

Publisher

verified publisherjakenelson.cloud

Weekly Downloads

2024.09.05 - 2025.03.20

Ensure that your users have provided necessary profile information before they can access your app.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on user_profile_gatekeeper