Best Practices for Tracking Real-Time Auth State Changes in iOS (Firebase to AppWrite Migration)
- 0
- Auth
- Apple

Hi everyone! I’m currently migrating my iOS app from Firebase to AppWrite - which is going to take me months. In Firebase, I used Auth.auth().addStateDidChangeListener to track real-time authentication state changes, which updated my app's state and shows the user the correct screen based on their state whenever the user logged in or out.
In AppWrite, I understand that there are Realtime subscriptions for accounts, but they only work after the user is authenticated and help with things like name change or email address change NOT the current auth state.
So we have Account.get() which returns a user if logged in, which you could use on every 'protected' page (which is the entire app) which is great but I want my AuthManager observable object to manage this for me and change my: @Published var authState = AuthState.unknown accordingly for the app to track. So, are there any best practices or recommended approaches for:
- Tracking real-time user auth state changes in iOS using AppWrite.
- Reducing latency or optimizing requests when periodically checking auth status.
- Any guidance on achieving a similar auth state listener effect in AppWrite would be greatly appreciated! Thank you!
Am I better to just call Account.get() at key points in the app’s lifecycle, such as app launch, user actions, and after login or logout or is it feasible to continuously poll Account.get() to replicate this real-time auth state nature of Firebase Auth?
Recommended threads
- Auto confirm team membership / emails no...
Hello, I'm using the Appwrite via the Cloud platform. I've started to use the Teams API, however emails are not arriving - this wouldn't be a problem if I was a...
- Issue with github oauth in firefox brows...
Hello Guys i have setup appwrite auth (Email Password, Google and Github). All auth methods works fine on the chrome based browsers but it has a strange issue w...
- Email template for OTP session
The default template shown by cloud interface does not match the sent template. Also whenever I change a character on the default template, the variable matcher...
