d'abord, désolé pour mon mauvais anglais, ce n'est pas ma langue maternelle ...règles de sécurité Firestore: la recherche d'un id de l'utilisateur dans le tableau dans un document
Je construis une application simple à Firebase, en utilisant la Firestore base de données. Dans mon application, les utilisateurs sont membres de petits groupes. Ils ont accès aux données des autres utilisateurs. Afin de ne pas interroger trop de documents (un par utilisateur, dans une sous-collection du document du groupe), j'ai choisi d'ajouter les données des utilisateurs dans un tableau dans le document du groupe. Voici le document de mon groupe:
{
"name":"fefefefe",
"days":[false,false,false,false,true],
"members":[
{"email":"[email protected]","id":"aaaaaaaa","name":"Mavireck"},
{"email":"[email protected]","id":"bbbbbbbb","name":"Mavireck2"},
],
}
Comment puis-je vérifier les règles de sécurité si un utilisateur est dans un groupe? Devrais-je utiliser un objet à la place? Je préfère vraiment ne pas utiliser de sous-collection pour les utilisateurs, car j'atteindrais trop rapidement les limites du quota gratuit ...
Merci de votre temps!
EDIT: Merci pour la réponse. Je vais changer à un objet: "Membres": {UID1: {}, UID2: {}}
Merci, mais je ne peux pas le faire fonctionner ... Je suis tout à fait sûr que ma base de données est correcte: j'ai un objet « membres » dans le document du groupe, contenant des objets plus faciles à utiliser infos : 'members = {uid1: {}, uid2: {}}'. Cependant, en utilisant 'allow read: if resource.data.members [request.auth.uid]! = Null;' ne fonctionnera pas. J'ai également essayé 'resource.data.members [request.auth.uid] .name! = Null;', et 'resource.data.members [(request.auth.uid)]! = Null;' – Mavireck
J'ai fait un simple test local: 'if (doc.data() ['membres'] [(firebase.auth() currentUser.uid)]! = null) {console.log (" not null)} ... Il est toujours connecté " not null " – Mavireck
Je ne peux pas éditer alors voici mon dernier commentaire:' allow read: si resource.data.membres [(request.auth.uid)]! = null; 'ne fonctionne pas pendant' allow read: if resource.data.membres! = null; 'fait. – Mavireck