title: Wait for async data from another mobx store
body: <p>I have 2 stores: UserStore and TodoStore.
  For fetching the todos i need to know the ID of my logged in user.</p>
  
  <p>That's part of my UserStore</p>
  
  <pre><code>export default class UserStore {
    @observable currentUser = null;
    @observable loading = false;
  
    constructor() {
      this.subscribe();
    }
  
    @action subscribe = () =&gt; {
      this.loading = true;
      firebase.auth().onAuthStateChanged((user) =&gt; {
        if(user) {
          this.setCurrentUser(user);
        } else {
          this.unsetCurrentUser();
        }
        this.loading = false;
      })
    }
  }
  </code></pre>
  
  <p>and this is the constructor of my TodoStore</p>
  
  <pre><code>constructor(users) {
      this.users = users;
  
      console.log(this.users.currentUser) //null
  
      this.storageRef = firebase.storage().ref('files/todos');
      this.todosRef = firebase.database().ref(`todos/${this.users.currentUser.uid}`);
      this.filesRef = firebase.database().ref(`files/${this.users.currentUser.uid}/todos`);
  
      this.logger();
    }
  </code></pre>
  
  <p>The problem here is that I am getting an error because at the moment of calling this the currentUser is still null.</p>
  
  <p>This is how i combine my stores:</p>
  
  <pre><code>const routing = new RouterStore();
  const ui = new UiStore();
  const users = new UserStore(ui);
  const todos = new TodoStore(users);
  
  const stores = {
    routing,
    ui,
    users,
    todos,
  }
  </code></pre>
  
  <p>What am I doing wrong? How do I know when the currentUser observable is available?</p>