skip to Main Content

I have a Flutter app where users can predict the outcome of a soccer match. The problem is that if the user changes the time on their phone they can still predict even after it has ended. How do I prevent this so that it’s independent of the time on each user’s phone?
Thank you

2

Answers


  1. the solution is to not get the date from the local device, but get it from the firebase timestamp that it offers, as example if we say that you want to do it from now until tomorrow at the same time, you can save it to your DB, using:

    Timestamp(Timestamp.now().millisecondsSinceEpoch , 24*60*60*1000)
    

    in your case, you need to compare the Timestamp we set in the database with:

    FieldValue.serverTimestamp()
    

    also, you can get a DateTime from a Timestamp with this:

     final firestoreTimestamp = /* the Timestamp object */;
     firestoreTimestamp.toDate();
    
    Login or Signup to reply.
  2. The safest and most recommended approach for this is to use database rules.
    Patiently study this https://fireship.io/snippets/firestore-rules-recipes

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