skip to Main Content

I hope this makes a bit sense, basically, I have this feature in my app for tracking calories which consists of having this page that only appears the first time you use the feature and it asks you to add personal details (so it can make the right calculations), after that you get faced with a simple page that tracks your nutrition with a button for the user to insert the meals he has eaten, this page has to save the inserted data (via firebase) and then restart from 0 each and every day.
my first problem is I don’t know how I make the page that only appears one time to save personal data(to be more precise I don’t know how to make only appears the first time). and the second problem is how do I make the app automatically sends the given data at the end of each day?
interface in normal state, interface when adding the meals

hopefully, this 2 images will help you get a better grasp of what am trying to explain

don’t worry am not looking for someone to straight up solve it all for me, I just need some orientation about what type of things/functions I need to do to solve these 2 problems

2

Answers


  1. Make the page that only appears one-time -> store a value in the shared preferences "isInfoShownToUser -> false" then do a check when the app starts to check if this value is false or true. If it is false show the "take the info" page .. then turn the value to false in the shared preferences.

    How do I make the app automatically send data -> Use a Workmanager implementation to send data to the server (Firebase) at a particular time ..
    Or use a implementation like the first one which uploads the data to the server just once everyday

    Login or Signup to reply.
  2. While @Narendra_Nath’s answer might work, please note that is not a bulletproof solution. Why? Because a SharedPreferences doesn’t persist across app uninstalls. This means that your user can install and uninstall the app and see the page as much as they want. So if you indeed want a user to see a screen only once, then you should consider storing that data in a database. Please note that SQLite isn’t also a solution because when a user uninstalls the app, everything that is stored locally is wiped out. So what’s the solution?

    The best way to solve this would be to store the data in the cloud, either in Cloud Firestore or in the Realtime Database. So you can set a boolean variable and always check against it.

    If you however intend to implement Firebase Authentication, then another solution would be to display the screen when your users are authenticated for the first time. So even if they will try to sign in on another device, install and uninstall the app, they won’t be able to see the screen again.

    Regarding the second problem, you should consider using Cloud Function for Firebase. It’s the most elegant solution. If you want to somehow schedule an operation, then you should consider using Cloud Scheduler, as explained in my answer in the following post:

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search