El usuario registrado también puede ver las actividades de otros usuarios. pero solo quiero que se vean las actividades del usuario que ha iniciado sesión. ¿Necesito hacer cambios en la sección de consulta?
useEffect(()=>{ const q = query(collection(db,'etkinlik')); const unsub = onSnapshot(q,(snap)=>{ const array = snap.docs.map(doc=>{ return{ id : doc.id, title : doc.get('title'), start: doc.get('start').toDate(), allDay : doc.get('allDay') } }); setData([...array]); }) return ()=>{unsub()} }) const handleDateClick = (args) => { if(args.jsEvent.altKey) { const title= prompt('Enter Title',args.dateStr); const event = { title: title ? title : args.dateStr, start: args.date, allDay: true, uid: uid, owner: user.uid } addDoc(collection(db,'etkinlik'),event) } };¿Cómo obtener datos en firestore por usuario específico?
Está buscando operadores de consulta con where , así:
query(collection(db,'etkinlik'), where('uid', '==', uid)); Esto consultará solo los documentos que cumplan la condición where . Sin embargo, esto no impide que otros usuarios consulten los datos.
Solo quiero que se vean las actividades del usuario que ha iniciado sesión
Bloquee la colección conreglas de seguridad . Por ejemplo, para hacer que una colección llamada etkinlik solo sea legible para clientes con un uid coincidente:
service cloud.firestore { match /databases/{database}/documents { match /etkinlik { allow read: if request.auth.uid == resource.data.uid; } } } Suponiendo que los documentos en etkinlik tienen un campo uid (como se indica en su ejemplo de código fuente; pero también tiene owner allí, por lo que depende de usted cómo usa esos campos).
Consulte docs para implementar las reglas de seguridad. Es una buena idea usar Firebase Console y probar las reglas en la sección Playground.
Para restringir que un usuario vea ciertos datos (como los datos de otros usuarios), deberá desarrollar reglas de base de datos. La restricción de que un usuario vea los datos también se puede hacer localmente, pero por razones de seguridad, debe desarrollar esto desde el backend.
Instrucciones de reglas de seguridad paraCloud Firestore y Realtime Datase según lo que esté usando.