Implement realtime online/offline status with flutter and firebase

Issue

Hy, what is the best way to show in an app if the user is online or offline?

Frontend -> Flutter

Backend -> Firestore Cloud and Firebase Auth.

I have a collection of users in firestore that contains documents. Each document is a user and contain “status” field. In flutter i can update this field every time that user sign in or log out but if you close the app it is not updated.

Solution

You can extend your statefulWidget State class with WidgetsBindingObserver like

class _HomePageState extends State<HomePage>
    with WidgetsBindingObserver

and initState method add WidgetsBinding.instance.addObserver(this);.

@override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
  }

Later overide didChangeAppLifecycleState method

@override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    if (state  AppLifecycleState.resumed)
      //TODO: set status to online here in firestore
    else
      //TODO: set status to offline here in firestore
  }

Answered By – Harsha pulikollu

Leave a Comment