es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Las expresiones de función no pueden tener un nombre asignado. Error en el documento.

Hola, en mi proyecto de Flutter tengo este problema cuando quiero recuperar a los usuarios por su ID.

Future<UserModel> getUserById(String id)=> _firestore.collection(collection).doc(id){
    print("==========el id es $id=============");
    debugPrint("==========el nombre es ${doc.data()['name']}=============");
    debugPrint("==========el nombre es ${doc.data()['name']}=============");

Da un error en [ .doc(id){ ]

¿Qué debo hacer?

También en mi página de orden, da el mismo error de alguna manera.

_firestore.collection(collection).doc(id).setData()({
      "userId": userId,
      "cart": convertedCart,
      "id": id,
      "total": totalPrice,
      "createdAt": DateTime.now().millisecondsSinceEpoch,
      "description": description,
      "status": status
    });
  }

¿Qué opinan?

En esa línea,

_firestore.collection(collection).doc(id).setData()({

setData da error.

Mi versión de Flutter es 2.5.1.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que hay un par de errores en su código que están causando problemas al intentar recuperar usuarios por su ID y establecer datos en su página de pedidos.

    Para el primer error en doc(id){, parece que puede haber un error de ortografía o de sintaxis. La sintaxis correcta para recuperar un documento por ID en Firestore es doc(id), sin las llaves.

    Por lo tanto, debe modificar su función getUserById para que se vea así:

    Future<usermodel> getUserById(String id) => _firestore.collection(collection).doc(id).get().then((doc) {
        print("==========id is $id===================");
        debugPrint("==========NAME is ${doc.data()['name']}=============");
        debugPrint("==========NAME is ${doc.data()['name']}=============");
        return UserModel.fromMap(doc.data());
      });
    

    Aquí, estamos usando el método then con una función de devolución de llamada para acceder a los datos del documento después de que se haya recuperado.

    Para el segundo error en setData()({, también parece ser un error de sintaxis. El método setData debe ser llamado sin los paréntesis, y los datos JSON deben pasarse como parámetro al método.

    Por lo tanto, debe modificar su código de página de pedidos para que se vea así:

    _firestore.collection(collection).doc(id).setData({
      "userId": userId,
      "cart": convertedCart,
      "id": id,
      "total": totalPrice,
      "createdAt": DateTime.now().millisecondsSinceEpoch,
      "description": description,
      "status": status
    });
    

    Con estas modificaciones, su código debería funcionar como se espera.

Comments are closed.