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.