首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法命名函数表达式。文档错误

无法命名函数表达式。文档错误
EN

Stack Overflow用户
提问于 2021-11-29 19:23:30
回答 1查看 140关注 0票数 0

你好,在我的flutter项目中,当我想要通过ID召回用户时,我遇到了这个问题。

代码语言:javascript
运行
复制
Future<UserModel> getUserById(String id)=> _firestore.collection(collection).doc(id){
    print("==========id is $id=============");
    debugPrint("==========NAME is ${doc.data()['name']}=============");
    debugPrint("==========NAME is ${doc.data()['name']}=============");

它在.doc(id){

怎么办?

在我的订单页面中,它以某种方式给出了同样的错误

代码语言:javascript
运行
复制
_firestore.collection(collection).doc(id).setData()({
      "userId": userId,
      "cart": convertedCart,
      "id": id,
      "total": totalPrice,
      "createdAt": DateTime.now().millisecondsSinceEpoch,
      "description": description,
      "status": status
    });
  }

你们觉得怎么样?

在那一行

代码语言:javascript
运行
复制
_firestore.collection(collection).doc(id).setData()({

setData出错

我的flutter版本是2.5.1

EN

回答 1

Stack Overflow用户

发布于 2021-11-29 19:31:53

尝试下面的代码。

代码语言:javascript
运行
复制
  Future<UserModel> getUserById(String id){
    return FirebaseFirestore.instance.collection("collectionPath")
        .doc(id).get().then((doc) => UserModel.fromSnapShot(doc.data()));
  }

您的fromSnapshot不返回UserModel。它应该看起来像这样。

代码语言:javascript
运行
复制
import 'package:flutter/foundation.dart';

@immutable
class UserModel{
  final String id;
  final String name;
  final String email;
  final String stripeId;
  final List<CartItemModel> cart;
  final int totalCartPrice;

  const UserModel({required this.id, required this.name, required this.email, required this.stripeId, required this.cart,
      required this.totalCartPrice});

  Map<String, dynamic> toMap() {
    return {
      'id': id,
      'name': name,
      'email': email,
      'stripeId': stripeId,
      'cart': cart,
      'totalCartPrice': totalCartPrice,
    };
  }

  factory UserModel.fromMap(Map<String, dynamic> map) {
    return UserModel(
      id: map['id'] as String,
      name: map['name'] as String,
      email: map['email'] as String,
      stripeId: map['stripeId'] as String,
      cart:  (map['cart'] as List).map((cart) => CartItemModel.fromMap(cart)).toList() ,
      totalCartPrice: map['totalCartPrice'] as int,
    );
  }
}

@immutable
class CartItemModel{
  final String id;


  const CartItemModel({required this.id});

  Map<String, dynamic> toMap() {
    return {
      'id': id,
    };
  }

  factory CartItemModel.fromMap(Map<String, dynamic> map) {
    return CartItemModel(
      id: map['id'] as String,
    );
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70160253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档