Flutter: Futures and shared preferences

I have a function called 'retrieveDB' that uses shared_preferences.dart plugin to retrieve data that I will use for deciding whether what collection/document name will I retrieve from Firestore. I've initialized usersDB and notifDoc = "" at the top of the class.
    Future retrieveDB() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    String db = prefs.getString('db');

    if (db == "MISS") {
      usersDB = "users_miss";
      notifDoc = "notifTokenMISS";
    } else if (db == "SDD") {
      usersDB = "users";
      notifDoc = "notifToken";
    }
    }

I placed 'retrieveDB' first thing in initState() (after super.initState()). 
My problem(I think) is that shared_preferences uses Future and it pauses its execution and proceeds with other functions that retrieves data from Firestore leaving the document names (usersDB and notifDoc = "") empty thus producing errors. Is there a way to wait for 'retrieveDB' first before proceeding with other functions or is there any place that I can put 'retrieveDB' that it will be executed/finished first? Or is there any better logic in implementing what I want? 

Async is contagious. You can't go back from async to sync.
If a function uses async you need to use await when you call it to ensure following code executes only after the async function completed:
Future foo() async {
  await retrieveDB();
  // other code that depends on the result or side effects of retrieveDB()
}