Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como criar uma lista unica para cada usuário que criar sua conta no App

Como criar uma função que forneça acesso único a uma lista de produtos para cada usuário do aplicativo. Esse é um exemplo de uma função que já está sendo ultilizada no projeto aqui do curso.

 export async function salvarProduto(data) {
    try {
        await addDoc(collection(db, 'produtos'), data)
        return 'ok'

    } catch (error) {
        console.log('Erro add produto', error)
    }

}
2 respostas

Para fornecer acesso único a uma lista de produtos para cada usuário, você precisa associar os produtos a um usuário específico. Você pode fazer isso adicionando um identificador único do usuário à coleção de produtos. Além disso, você precisará modificar a função salvarProduto para incluir o ID do usuário ao salvar o produto. Aqui está um exemplo básico de como você pode fazer isso:

Supondo que você tenha uma maneira de obter o ID do usuário (pode ser a partir do sistema de autenticação que você está usando), você pode modificar a função da seguinte maneira:

import { addDoc, collection, doc, setDoc } from 'firebase/firestore';
import { db } from './seu-arquivo-de-configuracao-do-firebase';

export async function salvarProduto(usuarioId, produtoData) {
    try {
        // Adiciona o produto à coleção 'produtos'
        const produtoRef = await addDoc(collection(db, 'produtos'), produtoData);

        // Associa o produto ao usuário
        const usuarioRef = doc(db, 'usuarios', usuarioId); // Substitua 'usuarios' pelo nome da coleção de usuários
        await setDoc(usuarioRef, {
            produtos: {
                [produtoRef.id]: true, // Usamos o ID do produto como chave e o valor 'true' como marcador
            },
        }, { merge: true });

        return 'ok';

    } catch (error) {
        console.log('Erro ao adicionar produto', error);
    }
}

Esta é uma abordagem simplificada, e você pode precisar ajustá-la de acordo com a estrutura específica do seu banco de dados e do seu sistema de autenticação. Certifique-se de substituir 'usuarios' pelo nome correto da coleção de usuários, e ajuste conforme necessário.

Além disso, ao exibir a lista de produtos para um usuário, você precisará recuperar os produtos associados a esse usuário com base no ID do usuário. Isso pode ser feito consultando a coleção de usuários para obter os IDs dos produtos associados e, em seguida, consultando a coleção de produtos com esses IDs.

solução!

Obrigado :D