Я принял во внимание комментарии и согласился. Eval следует избегать.
Доступ к свойствам корня в объекте легко достигается с помощью obj[variable]
, но получение вложенных усложняет ситуацию.
Пример
// Accessing root property
var rootProp = 'rootPropert';
_.get(object, rootProp, defaultValue);
// Accessing nested property
var listOfNestedProperties = [var1, var2];
_.get(object, listOfNestedProperties);
Lodash get может использоваться по-разному, вот ссылка на документацию lodash.get
Измените свой FutureBuilder
с последующим кодом, он должен работать для вас
FutureBuilder(
future: Firestore.instance.collection("myData").document("dummy").get(),
builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
return Text('Press button to start.');
case ConnectionState.active:
case ConnectionState.waiting:
return Text('Awaiting result...');
case ConnectionState.done:
if (snapshot.hasError)
return Text('Error: ${snapshot.error}');
return Text('Result: ${snapshot.data}');
// You can reach your snapshot.data['url'] in here
}
return null; // unreachable
},
);