flutter 未从firestore数据库获取所需输出:

ryevplcw  于 2023-02-25  发布在  Flutter
关注(0)|答案(1)|浏览(116)

我正在做一个项目,我有一个食谱数据库,其中有几个细节,如食谱名称,描述,成分,评级等
这是我的数据库:

我试图从数据库中获取配方成分,但它没有给我输出。
这就是我获取数据的方式:

Future<String?> getRecipeData(String recipeID, String key) async {
    try {
      CollectionReference recipes =
          FirebaseFirestore.instance.collection('recipes');
      final snapshot = await recipes.doc(recipeID).get();
      final data = snapshot.data() as Map<String, dynamic>;
      return data[key];
    } catch (e) {
      return 'Error fetching user';
    }
  }

  List<String> ingredients = [];
  ingredients = (await RecipeModel()
        .getRecipeData(widget.recipeID, 'recipe_ingredients'))!;

getRecipeData返回了正确的值,但recipe_ingredients除外。当我尝试获取recipe_ingredients时,它显示获取数据时出错。
请帮助我获得正确的输出。谢谢

s4chpxco

s4chpxco1#

我有一个类似的数据库方案,当我想检索数据时,我使用以下方法:

Future<List<String>> getRecepieIngredients(FirebaseFirestore db,String recipeId)async{
    List<String> recepieIngredients= [];
    QuerySnapshot<Map<String,dynamic>> query = await db.collection("recipies").where("id", isEqualTo: recipeId).get();
    if(query.docs.isNotEmpty){
      LinkedHashMap<String,dynamic> map = query.docs[0].data()['recepie_ingredients'];
      for(var rec in map.values){
        recepieIngredients.add(rec);
      }
    }
    return recepieIngredients;
  }

相关问题