Итак, первый НЕ работает. Я получаю снимок и выполняю итерацию, чтобы создать список значений, затем я хочу взять эти значения для использования в другом месте. Любые идеи? Второй почти идентичен, и он работает.
getAllFavoriteRecipes(RecipeNotifier recipeNotifier, favoriteIDs) async {
var uid = (await AuthServices().getCurrentUser());
Stream<DocumentSnapshot> favorites =
Firestore.instance.collection('users').document(uid).snapshots();
List _favorites = [];
favorites.forEach((item) {
var favoriteItem = item.data['favorites'];
_favorites.add(favoriteItem);
print('_favorites: $_favorites'); //<<This does print correctly>>>
});
List favoriteIDs2 = _favorites;
print('Hello: $_favorites'); //<<<<<does NOT print correctly>>>>>
print('Test: $favoriteIDs2'); //<<<<<does NOT print correctly>>>>>
QuerySnapshot snapshot = await Firestore.instance
.collection('recipes')
.where('recipeID', whereIn: favoriteIDs2)
.getDocuments();
List<RecipeList> _recipes = [];
snapshot.documents.forEach((document) {
RecipeList recipe = RecipeList.fromMap(document.data);
_recipes.add(recipe);
});
recipeNotifier.recipeList = _recipes;
}
Этот печатает правильно, хотя они делают то же самое:
QuerySnapshot featured =
await Firestore.instance.collection('featured').getDocuments();
List _featured = [];
featured.documents.forEach((document) {
var featuredItem = document.data['recipeID'];
_featured.add(featuredItem);
});
List featuredIDs = _featured;
print(featuredIDs);