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.

Obtener registro de la base de datos de Firestore con el mismo ID de usuario en Firestore del usuario que ha iniciado sesión para su edición – React Firestore.

He almacenado el usuario de inicio de sesión en el localstorage.

useEffect(() => {
  const getUsers = async () => {

    const loginUser = JSON.parse(localStorage.getItem("user"));

    let qt = doc(db, "todoData", id);

    //const qu = query(qt, where("userId", "==", loginUser.uid))  

    const querySnapshot = await getDoc(qt);

    if (querySnapshot.exists()) {
      console.log(querySnapshot.data());
    } else {
      console.log("No existe ese documento");
    }

    setState({
      name: querySnapshot.data().name,
      desc: querySnapshot.data().description,
      date: querySnapshot.data().completeDate,
      isCompleted: querySnapshot.data().isComplete,
    });

  };

  getUsers();  
}, []);

No entiendo cómo hacerlo.
En la condición “where”, “userId” está en Firebase Firestore.

Y cómo utilizar la condición “where” para editar y eliminar solo los datos del usuario que ha iniciado sesión.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para editar y eliminar solo los datos pertenecientes al usuario que ha iniciado sesión, puede utilizar la cláusula “where” al realizar consultas en la colección de Firestore. Por ejemplo, para obtener una consulta de documentos basada en el ID del usuario que ha iniciado sesión:

    const loginUser = JSON.parse(localStorage.getItem("user"));
    const userQuery = query(
      collection(db, "todoData"),
      where("userId", "==", loginUser.uid)
    );
    

    Esto recuperará todos los documentos en la colección “todoData” donde el campo “userId” coincida con el ID del usuario que ha iniciado sesión.

    Para actualizar o eliminar un documento específico, puede pasar su ID a la función correspondiente, junto con los datos actualizados o un comando para eliminar el documento:

    const docId = "some-document-id";
    const updatedData = { name: "Nuevo nombre", description: "Nueva descripción" };
    const docRef = doc(db, "todoData", docId);
    
    // Actualizar el documento
    await updateDoc(docRef, updatedData);
    
    // Eliminar el documento
    await deleteDoc(docRef);
    

    Estas operaciones solo afectarán al documento con el ID especificado, siempre que también cumpla con la condición “where” en la consulta original.

Comments are closed.