Looking at the docs for provider it says:
The easiest way to read a value is by using the static method Provider.of(BuildContext context). This method will look up in widget tree starting from the widget associated to the BuildContext passed and it will return the nearest variable of type T found (or throw if nothing if found).
So, basically, you access a variable / value by its type, and not its name. Does this mean that each provider can only have a single variable of each type? What if I have two variables of type String? Do I need to wrap those in a custom type and then access them via that type and then the variable name?